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
本文引用通告地址: http://blog.csdn.net/codo/services/trackbacks/472774.aspx
[ 点击此处收藏本文]