Asp.Net中使用多语言总结

1。实现方法

VS中添加包含目录

 Asp。网络中使用多语言总结

在该目录中添加两个资源文件Resource.resx, Resource.en-us。resx

 Asp。网络中使用多语言总结

资源文件内容如下图所示:

 Asp。网络中使用多语言总结

<>强控件中绑定

& lt; asp:标签runat=皊erver"ID=" labLogin "文本=? lt; % $资源:资源,LoginTitle %比;“祝辞& lt;/asp: Label>

其中资源为资源文件的文件名,LoginTitle为资源文件中定义的文本项名称

 asp。网络中使用多语言总结

<强>代码中使用

this.labLogin。文本=Resources.Resource.LoginTitle;//后台代码中使用

<强>测试

可通过如下代码强制页面为英文模式,进行测试(也可以通过更改即设置默认语言)

& lt; % @页面语言=癱#“;AutoEventWireup=皌rue"后台代码=癓ogin.aspx.cs"继承=癈ase.Login"文化=癳n-us"UICulture=癳n-us" & # 160; & # 160;%在

 Asp.Net中使用多语言总结”> & # 160;</p> <p> </p> <p> </p> 2。本地资源和全局资源<p> </p> <p>前面介绍的全局资源文件的使用,实际项目中会有很多特定的资源(只在某个页面或函数中使用),如果全部放在全局资源文件中,该资源文件内容将会很多,难以维护,取一个惟一的键值名称都难,这种情况asp.net有更好的解决方案,那就是本地资源文件“App_LocalResources”: </p> <p> & # 160;包含和App_LocalResources的区别:</p> <p> & # 160;前者主要放一些全局类的信息,如多个页面或多个模块中都会用到的字符串;</p> <p> & # 160;后者主要放置某一个页面关联的特定的资源信息,App_LocalResources使用方式如下:</p> <p> & # 160;在aspx所在的目录中创建“App_LocalResources”文件夹,添加资源文件,资源文件名称格式:“页面名称加后缀.resx

& # 160; & # 160;文件中的资源对象命名约定 resourcekey <代码>。 属性。例如btnLogin.Text,代码结构如下图,指数。aspx是在案件子目录下面,故在案件目录中创建App_LocalResources目录

 Asp。网络中使用多语言总结

<强>资源文件内容

 Asp。网络中使用多语言总结

<强>界面中使用

注意红色字体部分:

& lt;形式id=癴orm1"runat=皊erver"祝辞& # 160;
& # 160; & # 160; & # 160; & # 160;& lt; asp:按钮ID=癰tnTest"元:resourcekey=癰tnSubmit"runat=皊erver"/祝辞& # 160;& # 160;& # 160;& # 160;
& lt;/form>

<>强后台代码中使用

。Title=GetLocalResourceObject (“PageTitle") .ToString ();

3。实现多语言切换

& # 160; & # 160; & # 160;前台界面实现语言切换,切换后将选择的语言应用或en - us等字符串保存起来(会话、饼干或用户数据表中),页面浏览时先读取到用户的语言,页面中重写InitializeCulture& # 160;函数,绑定语言。

(建议将该函数写在页面基类中继承自页面类,然后所有页面手动更改继承关系,继承自这个基类)

保护覆盖空白InitializeCulture ()
& # 160; & # 160; & # 160; & # 160; & # 160;{
& # 160; & # 160; & # 160; & # 160; & # 160; & # 160; & # 160; & # 160; & # 160;字符串cultureString=癳n-us";//可以根据用户选择的语言,保存到会话/cookie中然后去取
& # 160; & # 160; & # 160; & # 160; & # 160; & # 160; & # 160; & # 160; & # 160;System.Threading.Thread.CurrentThread。CurrentCulture=System.Globalization.CultureInfo.CreateSpecificCulture (cultureString);
& # 160; & # 160; & # 160; & # 160; & # 160; & # 160; & # 160; & # 160; & # 160;System.Threading.Thread.CurrentThread。CurrentUICulture=new System.Globalization.CultureInfo (cultureString); & # 160; & # 160; & # 160; & # 160; & # 160; & # 160; & # 160; & # 160; & # 160;
& # 160; & # 160; & # 160; & # 160; & # 160;}
& # 160; & # 160; & # 160; & # 160; & # 160;保护无效employee(对象发送方,EventArgs e)
& # 160; & # 160; & # 160; & # 160; & # 160;{
& # 160; & # 160; & # 160; & # 160; & # 160; & # 160; & # 160; & # 160; & # 160;this.Page。标题=Resources.Resource.LoginTitle;//后台代码中使用

Asp.Net中使用多语言总结