我有本地化的应用程序,用户可以在下拉控件中选择她的首选语言。在OnSelectedIndexChanged事件之后,有回发和CurrentThread.CurrentCulture应该设置为用户选择的内容。
Login.aspx.cs
public partial class Login : BasePage
{
protected void LanguageDrop_changed(object sender, EventArgs e)
{
var lang = LanguageDropDown.SelectedValue;
Thread.CurrentThread.CurrentUICulture = new CultureInfo(lang);
Thread.CurrentThread.CurrentCulture = new CultureInfo(lang);
}
}
但是,它无法正常工作,因为在InitializeCulture之后会触发LanguageDrop_click事件,因此初始化了一些默认文化,控件被本地化为默认语言,然后设置了CurrentThread.CurrentCulture。因此,用户必须再次刷新页面,以便以所选语言查看它们。
更新: 我找到了部分答案:http://www.codeproject.com/Kb/aspnet/localizationByVivekTakur.aspx 他从Form集合
中检索InitializeCulture()事件中的语言下拉值答案 0 :(得分:1)
最佳答案是我提供的链接
http://www.codeproject.com/Kb/aspnet/localizationByVivekTakur.aspx 他检索语言下拉值 在Form中的InitializeCulture()事件中 集合
或制作Response.Redirect,再次请求页面,然后设置文化。
答案 1 :(得分:0)
根据我的经验,不幸的是没有更好的选择,你将不得不再次刷新。你的推理是正确的。