我有多语言的asp.net网站。 有一个masterpage和default.aspx。点击按钮后更改CulturalInfo
我在主页上放了两个按钮 - 一个点击当我想把语言改成英文,第二个打磨。当然,我想点击这些按钮后更改语言(和所有的变化应该在页面上自动显示)
这里是两个代码:在default.aspx.cs
protected void EnglishButton_Click(object sender, ImageClickEventArgs e)
{
string selectedLanguage = "en-US";
//Sets the cookie that is to be used by InitializeCulture() in content page
HttpCookie cookie = new HttpCookie("CultureInfo");
cookie.Value = selectedLanguage;
Response.Cookies.Add(cookie);
Server.Transfer(Request.Path);
}
protected void PolishButton_Click(object sender, ImageClickEventArgs e)
{
string selectedLanguage = "pl-PL";
//Sets the cookie that is to be used by InitializeCulture() in content page
HttpCookie cookie = new HttpCookie("CultureInfo");
cookie.Value = selectedLanguage;
Response.Cookies.Add(cookie);
Server.Transfer(Request.Path);
}
我有InitializeCulture():
protected override void InitializeCulture()
{
HttpCookie cookie = Request.Cookies["CultureInfo"];
// if there is some value in cookie
if (cookie != null && cookie.Value != null)
{
Thread.CurrentThread.CurrentCulture =
CultureInfo.CreateSpecificCulture(cookie.Value);
Thread.CurrentThread.CurrentUICulture = new
CultureInfo(cookie.Value);
}
else // if none value has been sent by cookie, set default language
{
Thread.CurrentThread.CurrentCulture =
CultureInfo.CreateSpecificCulture("pl-PL");
Thread.CurrentThread.CurrentUICulture = new
CultureInfo("pl-PL");
}
base.InitializeCulture();
}
我添加的资源文件,并在一个标签i显示了实际的文化:
Welcome.Text = “文化:” + System.Globalization.CultureInfo.Curre ntCulture.ToString();
问题是,当我运行这个应用程序,并点击例如英语按钮(默认语言是波兰语),不起作用。如果我第二次单击它或按F5,则会应用更改,并在文化标签中显示为en-US。 如果我想将语言改回波兰语(它在第二次点击(或单击并刷新)之后起作用),Tsame会发生。
我到底做错了什么?
感谢的,它帮助! – Bart 2010-04-04 07:05:54