用ASP.Net2.0开发多语言系统,步骤:
1、创建一个新的Web解决方案,并在Default.aspx页面放入三个控件:
A.Label1,改名为lblSelect
B.DropDownList1,改名为dropSelect
C.Label1,改名称为lblTestText
2、生成资源文件:点击菜单Tools/Generate Local Resource生成资源文件
3、修改生成的资源文件Default.aspx.resx
A.删除所有值
B.添加Name=“lblSelect.Text”,Value=“请选择语言”
添加Name=“lblTestText.Text”,Value=“这里就是您的测试”
4、修改Default.aspx页面
进入Source模式,修改
A.<asp:Label ID="lblSelect" runat="server" meta:resourcekey="lblSelectResource1"></asp:Label>
改为
<asp:Label ID="lblSelect" runat="server"
meta:resourcekey="lblSelect"></asp:Label>
B.<asp:DropDownList ID="dropSelect" runat="server"
meta:resourcekey="dropSelectResource1"
OnSelectedIndexChanged="dropSelect_SelectedIndexChanged">
<asp:ListItem meta:resourcekey="ListItemResource1" Value="en-
GB">English</asp:ListItem>
<asp:ListItem meta:resourcekey="ListItemResource2" Value="zh-HK">繁體中文
</asp:ListItem>
<asp:ListItem meta:resourcekey="ListItemResource3" Value="zh-CN">简体中文
</asp:ListItem>
</asp:DropDownList>
改为
<asp:DropDownList ID="dropSelect" runat="server"
OnSelectedIndexChanged="dropSelect_SelectedIndexChanged">
<asp:ListItem Value="en-GB">English</asp:ListItem>
<asp:ListItem Value="zh-HK">繁體中文</asp:ListItem>
<asp:ListItem Value="zh-CN">简体中文</asp:ListItem>
</asp:DropDownList>
C.<asp:Label ID="lblTestText" runat="server"
meta:resourcekey="lblTestTextResource1"></asp:Label>
改为
<asp:Label ID="lblTestText" runat="server"
meta:resourcekey="lblTestText"></asp:Label>
5、添加英文资源文件
A.复制一个Default.aspx.resx资源文件文件,并改名为Default.aspx.en-GB.resx
B.修改Default.aspx.en-GB.resx,“lblSelect.Text”的值为“Please select language:
”
“lblTestText.Text”的值为“This you test”
6、添加繁体资源文件
A.复制一个Default.aspx.resx资源文件文件,并改名为Default.aspx.zh-HK.resx
B.修改Default.aspx.en-GB.resx,“lblSelect.Text”的值为“請選擇語言:”
“lblTestText.Text”的值为“這裏就是您的測試”
7、在dropSelect控件的SelectedIndexChanged事件里添加如下代码:
Session["Culture_Code"] = dropSelect.SelectedValue;
this.Server.Transfer(this.Request.Path);
8、在Default.aspx页面的Page_Load事件里添加如下代码:
if (!IsPostBack)
{
string culturecode =
System.Threading.Thread.CurrentThread.CurrentCulture.Name;
dropSelect.Items.FindByValue(culturecode).Selected = true;
}
9、在Default.aspx.cs里添加如下代码:
protected override void InitializeCulture()
{
if (Session["Culture_Code"] != null)
{
string culturecode = Session["Culture_Code"].ToString();
System.Globalization.CultureInfo ci = new
System.Globalization.CultureInfo(culturecode);
System.Threading.Thread.CurrentThread.CurrentCulture = ci;
System.Threading.Thread.CurrentThread.CurrentUICulture = ci;
}
}
10、按Ctrl+F5运行程序,到此你就可以测试到效果了。
注:一些外语资源名称:
日语 /?mkt=ja-jp 俄语 /?mkt=ru-ru
荷兰语 /?mkt=nl-nl 朝鲜语 /?mkt=ko-kr
英国英语 /?mkt=en-gb 西班牙语 /?mkt=es-es
繁体中文 /?mkt=zh-hk 意大利语 /?mkt=it-it
---------------------------------------------------------------------------------------------------------------------------------
为了多个页面共用资源文件,这里应该添加全局文件夹:App_GlobalResources
1.如果添加的资源文件名称为MyResource.resx,
那么在页面上应该这样绑定: