asp.net 2005 全球化(多语言)系统的solution

 
1:将页面内所有的文本用一个 Literal的server控件包起来;
 
2:对图片的处理:HTML的<img>标签在传src时在中间加一个在CS里定义的全局变量来确实图片来源文件夹
   Sample:
    Html
     < img src='../test/<%=IMGURL %>/button_add.gif' onclick='javascript:alert("");' id=bbb/>
     CS
    public partial class _Default : PageBase
{
       public string IMGURL ;
         protected void Page_Load(object sender, EventArgs e)
        {
           IMGURL = this.GetIMGURL();
         }
}
PageBase
Public String GetIMGURL()
{
    String returnURL = en-US ;
string thisURL= Request.UserLanguages[0].ToString();
           if (thisURL == "en-US")
           {
              returnURL = "EN"; //EN 是项目里面一个EN的英文图片文件夹
           }
           else if(thisURL == "zh-cn")
           {
              returnURL = "CN";//CN 是项目里面一个CN的中文图片文件夹
        }
}
 
Server 的图片或图片按钮
在后台CS用赋值的方法ImageUrl赋图片地址,只是在中间加一个 GetIMGURL()返回的图片文件的名称
 
3
 在页面设计视图下 VS.NET 2005 菜单- Tools Generate Local Resource ,所产生的资源文件将会放在 /App_LocalResources 下面
就会生成一个相对应的关联本地化的资源文件,里面定义了页面所有的服务器控件的本地化资源,在里面可以修改它的值,这只是一个文字(如中文)的版本,如要建其它的版本复制一个刚才的资源,再粘贴在 Generate Local Resource 里面改名 ; : Default.aspx.en-US.resx 等等 , 再将里面的值改成你需要的语言
 
区域性名称
区域性标识符
语言 - 国家 / 地区
zh-CN
0x0804
中文 - 中国
zh-TW
0x0404
中文 - 台湾
zh-CHS
0x0004
简体中文
zh-CHT
0x7C04
繁体中文
en
0x0009
英语
en-US
0x0409
英语 - 美国
en-GB
0x0809
英语 - 英国
uz-UZ-Cyrl
0x0843
乌兹别克语(西里尔语) - 乌兹别克斯坦
uz-UZ-Latn
0x0443
乌兹别克语(拉丁) - 乌兹别克斯坦
       
 
4 :JavaScript 里中文字和有文字图片的解决方法
解决 js 里一个麻烦的问题 , 共同调用一个 JS 文件,文件里有一个全局的变量 var Lanflag ,再在页面的开始处定义一个隐藏控件专门作为语言控制的 flag ,并在这个控件下将这个值赋给 Lanflag; 页面所的 JS ,返回文本的地方都要先对 Lanflag 进行判断,来决定使用哪种语言 ;
< asp : TextBox ID=tag runat=server Text="<%$ Resources:ALLflag %>" ></asp:TextBox>//CSS 隐藏
<script language=javascript> Lanflag = document.getElementById( tag ).value;</script>
或者,在 head 里面定义 lanflag = <% =ALLflag %>//Allflag 是cs里面的全局变量 Allflag = GetIMGURL()
 
5 CS 时面返回到页面的文本
对response.write等返回的文本需要通过全局变量Allflag = GetIMGURL()来判断输出文本;
 
6 关于datagrid的header的两种改法:
1: 将header变成模板列 文字用Literal包住
2: <asp:BoundField   DataField="ID"     ControlStyle-Width="20"   HeaderText   =   "colum1"   meta:resourcekey="bfIDResource"   /> bfIDResource 为在资源文件里定义
6:这里再补充一点:
关于<system.web>
    <globalization uiCulture="zh-CN" culture="zh-CN"/>
这句话要生效必须在IE选项->常规的语言那里清空语言,不然会按IE设置
关于.net多语言实现(全球化)的参考文章:
 
 
 
上述只是本人择优选择的一种方案,如大家有更好的方法,欢迎提出来讨论;
                                                              --Mathew 2008-2-25
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值