先写基类:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Globalization;
using System.Resources;
using System.Threading;
namespace Common
{
public class BasePage : System.Web.UI.Page
{
public BasePage()
{
//
// TODO: Add constructor logic here
//
}
protected override void InitializeCulture()
{
string strLang;
if ((string)Session["language"] != null)
{
strLang = (string)Session["language"];
}
else
{
strLang = Request.UserLanguages[0];
}
if (!strLang.Equals(""))
{
UICulture = strLang;
Culture = strLang;
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(strLang);
Thread.CurrentThread.CurrentUICulture = new CultureInfo(strLang);
}
base.InitializeCulture();
}
}
}
其他页面继承该基类
在首页用列表框让用户自由选择语言,并记录选择的语言。
session是记录用户选择的语言,否则用浏览器默认的语言
然后,针对每个文件,创建一个不同语言的资源文件,在aspx文件中如下引用资源项
<asp:Label ID="UserNameLabel" runat="server" AssociatedControlID="UserName" Text="<%$ Resources:UserNameLabel.Text %>"></asp:Label>
也可以利用vs的资源文件工具帮助产生资源文件
tools -> generate local resource