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.在页面获取资源文件中的值 隐式: this.GetLocalResourceObject("key");其中key对应资源文件中的keyname
<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.GetGlobalResourceObject("GblResource", "key") ;其中GblResource是对应全局资源文件的名称,key是其中的keyname