.net 软件配置多语言环境

王朝asp·作者佚名  2006-01-10
宽屏版  字体: |||超大  

1 配置webconfig

<add key="DefaultCulture" value="zh-cn" />

<add key="CNCulture" value="zh-cn" />

<add key="ENCulture" value="en-us" />

2 添加resource 文件

Text.en-us.resx ; Text.zh-cn.resx

3 填写resouce 文件

4 配置global.asax.cs

protected void Application_BeginRequest(Object sender, EventArgs e)

{

try

{

if(Request.Cookies["CultureResource"]!=null)

Thread.CurrentThread.CurrentCulture=new CultureInfo(Request.Cookies["CultureResource"].Value);

else

Thread.CurrentThread.CurrentCulture=new CultureInfo(ConfigurationSettings.AppSettings["DefaultCulture"].ToString());

Thread.CurrentThread.CurrentUICulture=Thread.CurrentThread.CurrentCulture;

}

catch(Exception)

{

Thread.CurrentThread.CurrentCulture=new CultureInfo(ConfigurationSettings.AppSettings["DefaultCulture"].ToString());

}

}

5 添加 aspx 页面

后台代码如下:

using System;

using System.Collections;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Web;

using System.Web.SessionState;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.HtmlControls;

using System.Configuration;

using System.Threading;

using System.Resources;

using System.Globalization;

using System.Diagnostics;

using System.Reflection;

namespace SearchName

{

/// <summary>

/// Summary description for Culture.

/// </summary>

public class Culture : System.Web.UI.Page

{

protected System.Web.UI.WebControls.Button Button1;

protected System.Web.UI.WebControls.Label Label2;

protected System.Web.UI.WebControls.Button Button2;

protected System.Web.UI.WebControls.Label Label1;

private void Page_Load(object sender, System.EventArgs e)

{

// Put user code to initialize the page here

Label2.Text = Thread.CurrentThread.CurrentCulture.EnglishName;

Label1.Text = Resource("Label1");

}

#region Web Form Designer generated code

override protected void OnInit(EventArgs e)

{

//

// CODEGEN: This call is required by the ASP.NET Web Form Designer.

//

InitializeComponent();

base.OnInit(e);

}

/// <summary>

/// Required method for Designer support - do not modify

/// the contents of this method with the code editor.

/// </summary>

private void InitializeComponent()

{

this.Button1.Click += new System.EventHandler(this.Button1_Click);

this.Button2.Click += new System.EventHandler(this.Button2_Click);

this.Load += new System.EventHandler(this.Page_Load);

}

#endregion

/// <summary>

/// Get resource value by key.

/// </summary>

/// <param name="key">resoure key</param>

/// <returns>string</returns>

public string Resource(string key)

{

string resourceValue = null;

CultureInfo ci = CultureInfo.CurrentCulture;

ResourceManager rm = new ResourceManager("SearchName.Text", Assembly.GetExecutingAssembly());

try

{

resourceValue = rm.GetString(key,ci);

}

catch(Exception)

{

return "";

}

return resourceValue;

}

private void Button1_Click(object sender, System.EventArgs e)

{

this.UpdateCultureCookie(ConfigurationSettings.AppSettings["ENCulture"].ToString());

System.Web.UI.Page currentPage= (System.Web.UI.Page)this;

Response.Redirect(currentPage.Request.Url.ToString());

}

private void UpdateCultureCookie(string culture)

{

if(Request.Cookies["CultureResource"] != null)

{

Response.Cookies["CultureResource"].Value = culture;

Response.Cookies["CultureResource"].Expires = System.DateTime.Now.AddDays(30);

}

else

{

HttpCookie cultureCookie = new HttpCookie("CultureResource");

cultureCookie.Value = culture;

cultureCookie.Expires = System.DateTime.Now.AddDays(30);

Response.Cookies.Add(cultureCookie);

}

}

private void Button2_Click(object sender, System.EventArgs e)

{

this.UpdateCultureCookie(ConfigurationSettings.AppSettings["CNCulture"].ToString());

System.Web.UI.Page currentPage= (System.Web.UI.Page)this;

Response.Redirect(currentPage.Request.Url.ToString());

}

}

}

ok

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有