asp.net国际化和本地化

客户端语言自动识别功能,还可以通过Accept-Language获得客户端使用的语言

<%@ Page Culture = “auto:zh-cn”>

语言自动识别,但若不在支持范围内,则执行auto.语言文化会在PreInit事件中初始化。

通过在System.Globalization命名空间

RegionInfo region = new RegionInfo(CultureInfo.CurrentCulture.Name);//获得一对象

//? 通过该对象的方法实现针对不同文化的不同操作

?

本地化

本地资源文件

1,隐式

App_LocalResource目录下放一些 *.resx文件 abcd.aspx.resx默认的资源文件, abcd.aspx..zh-cn.resx对简体中文时使用的资源文件,abcd.aspx.ja.resx对日文等。只针对特定的页面,不只是aspx页,用户控件和master页也可以。对应的页的所有的服务器控件,用户控件和运行在服务器端的HTML控件,若控件属性定义时[Localizable(true)]标记的都会自动的加入对应的资源文件,只需填入你想要的值就行了。

<%@ Page Culture = “auto” UICultrue = “auto” meta:resourceKey=”PageResource1” %>

及其引用控件

<asp:label id=”label1” meta:resourceKey = “Label1Resource1” runat=”server” />对应的资源标识符都有IDE自动完成,不用自己去添加。

2,显示

可以用于那些属性定义时不带[Localizable(true)]

在上述资源文件中加入

<data name = “MyColor” xml:space =”Preserver”>

? <value>Green</value>

</data>

在页面中

<asp:TextBox ID=”textbox1” runat=”server” meta:resourceKey=”对不同的资源文件中可设为不同的值? BackColor=”<%$ Resources:MyColor %>” />

全局资源文件

App_GlobalResource目录下添加yourName.resx文件,yourName.zh-cn.resx文件等。

在对应的编辑器中输入键/值对就行了。

引用时

Text = “<%$ Resources:yourName,yourKey %>”

就行了

?

若其中有一些控件不想应用这些资源文件,可以加一个meta:localize = “false”的属性

?

在后台的代码中访问这些资源文件

button1.Text = GetLocalResourceObject(“ButtonResource1.Text”).ToString();

button2.Text = GetGlobalResourceObject(“yourName”,”yourKey”).ToString();

?

静态文本的本地化

使用本地资源

<asp:Localize id=”lo1” runat=”server” meta:resourcekey = “welcome” >welcome</asp:Localize>

使用全局资源

<asp:Localize id=”lo2” runat=”server” text=”<%$ Resources:welcomeName,welcomeKey %>” >welcome</asp:Localize>

?


原文地址:https://www.cnblogs.com/wzg0319/p/1969311.html