DotNet2.0多语言解决方案

mac2022-06-30  22

Visual Studio 2005  一、 C/S系统多语言源码实例            Download  二、  B/S系统多语言源码实例             Download    1)自动侦测获得浏览器中设置的语种          如图:CultureInfo.CurrentCulture.Name返回zh-cn         2)客户端资源获取           隐式:<asp:Label ID="Label1" runat="Server" meta:resourcekey="resource-key-prefix"/>           显式:<%$ Resources:[filename prefix,]resource-key %>           隐示定义主要是用在资源文件放在APP_LocalResources目录下的资源,显式定义用在资源在APP_GlobalResources目录下,也可在APP_LocalResources目录。必需指定资源所在的文件名。隐式不需要指定资源所在的文件是因为默认资源就是当前页面所在的资源文件中。显式调用缺省如果文件名不存在,则从本地的资源文件中查找。     3)特定国家/地区信息(文化格式)           System.Globalization.RegionInfo     4)服务器端资源获取          全局资源:string res = GetGlobalResourceObject("资源文件名","资源键名")          本地资源:string res = GetLocalResourceObject("资源争名")     5)用户语种设置        用户语种保存在web.config的profile节点中或者Cookie中,我更喜欢后者主要是前者还不了解。string userCulture = Profile.GetPropertyValue("currentCulture").ToString();      System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo(userCulture);         System.Threading.Thread.CurrentThread.CurrentCulture = ci;         System.Threading.Thread.CurrentThread.CurrentUICulture = ci;       放在Global.asax文件的void Application_AcquireRequestState(object sender, EventArgs e)中初始化。 如: Login.aspx protected void DropDownLanguage_SelectedIndexChanged(object sender, EventArgs e)    {    string SelectedLanguage = DropDownLanguage.SelectedValue.ToString();    //Save selected user language in profile    Profile.SetPropertyValue("PreferredCulture", SelectedLanguage);       //Force re-initialization of the page to fire InitializeCulture()    Response.Redirect(Request.Url.LocalPath);    }    protected override void InitializeCulture()    {    // override virtual method InitializeCulture() to check if profile contains a user language setting    string UserCulture = Profile.GetPropertyValue("PreferredCulture").ToString();    if ( UserCulture != "")    {    // there is a user language setting in the profile: switch to it    Thread.CurrentThread.CurrentUICulture = new CultureInfo(UserCulture);    Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(UserCulture);    }    } Global.asax    void Application_BeginRequest(object sender, EventArgs e)    {    string lang = string.Empty;//default to the invariant culture    lang = Profile.PreferredCulture;    if (string.IsNullOrEmpty(lang))    {    lang = string.Empty;    }    Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo(lang);    Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(lang);    }      6)编码方式      例,强制指定简体中文的编码方式     <configuration><system.web><globalization requestEncoding="GB2312" responseEncoding="GB2312" fileEncoding="GB2312" /></system.web></configuration> 源代码是最好的文档。------------------------- 需要.net framework 2.0

转载于:https://www.cnblogs.com/hotsoho.net/archive/2006/05/28/411165.html

相关资源:JAVA上百实例源码以及开源项目
最新回复(0)