ASP.NET通过读取资源文件实现国际化。
资源文件有全局资源文件和本地资源文件。如果页面比较多的网站,我建议使用本地的资源文件,这样的话每个页面会对应自己的资源文件,当出现错误的时候,你很很轻松地修改错误。
1.语言信息的初始化
protected override void InitializeCulture()
{
string languageId = "en-US";
//可以通过Request.UserLanguages[0]获取浏览器的语言信息,
当然你可以根据自己不同的需要得到语言信息
UICulture = languageId;
Culture = languageId;
System.Threading.Thread.CurrentThread.CurrentCulture=
System.Globalization.CultureInfo.CreateSpecificCulture(languageId);
System.Threading.Thread.CurrentThread.CurrentUICulture=
new System.Globalization.CultureInfo(languageId);
}
2.在页面获取资源文件中的值
隐式:
<asp:Label ID="lbl" runat="server" meta:resourcekey="lbl" />
显式:
<asp:Label ID="lbl2" runat="server" Text="<%$ Resources:lbl.Text %>" ToolTip="<%$ Resources:lbl.ToolTip %>" />
全局:
<asp:Label ID="lbl3" runat="Server" Text="<%$ Resources:MyGlobal,GlobalText %>" />
3.在cs中获取资源文件中的值
this.GetLocalResourceObject("key");其中key对应资源文件中的keyname
this.GetGlobalResourceObject("GblResource", "key") ;其中GblResource是对应全局资源文件的名称,key是其中的keyname