关于ASP.NET国际化的问题,怎么让用户选择语言类型
请问一下,
我给我的asp.net程序添加了两个资源文件,分别显示对应中文和英文版,
如果我给程序配置文件中设置默认显示中文或者英文,都能正常显示,
现在我在页面上加了一个dropdownList,想让用户从dropdownList下拉显示中文或者英文,
选择中文就匹配程序的默认资源文件,选择英文就匹配程序的默认英文资源,
这个应该怎么实现呢?
我的代码中,
重写了InitializeCulture()方法
protected override void InitializeCulture()
{
//显式的指定区域为en
//实际应用中可以根据用户选择来动态设置语言
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en");
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-US");
}
以为这样的话只要将改方法调用就可以了,可是不行!
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
if (this.DropDownList1.SelectedValue == "英语")
{
InitializeCulture();
}
}
这样的话,因为我重写的InitializeCulture()方法是设置文化为英语,这个页面加载的时候,就默认显示英语了!
如果我不重载InitializeCulture()方法,
直接写
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
if (this.DropDownList1.SelectedValue == "英语")
{
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en");
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-US");
}
}
这样的话,页面加载的时候,是显示默认文化中文,然后我在dropdownList中选择“英语”以后,页面还是没有调用英语的资源文件,还是显示中文!!
请问高手们,这个根据用户的选择语言种类显示多语言版本的asp.net程序,应该怎么做呢????
PS:我的dropdownList的AutoPostback为true