asp.net CurrentUICulture和resx文件

时间:2013-05-14 14:14:45

标签: c# asp.net .net globalization resx

在我的asp.net应用程序中,我想让用户更改他的个人资料语言,然后加载相应的resx文件。

我有两个全球.resx文件:

LocalizedText.resx

LocalizedText.pl.resx

protected void Page_Load(object sender, EventArgs e)
{  
      ...
      if (!IsPostBack)
      {
           setUserSettings(...)
      }                       
}

private void setUserSettings(...)
{
    ...
    Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("pl");
}
当用户更改其个人资料设置时,也会使用

setUserSettings(...)

问题在于它总是后退到LocalizedText.resx文件而不是加载LocalizedText.pl.resx

我对它进行了重写,并且在Page_Load的开头,CurrentUICulture始终是“en_US”。

我尝试设置UICulture和Culture属性,但它没有用。

当我使用Page.Culture =“auto”时,当我将浏览器语言设置为“pl”时,它会加载.pl.resx文件,但这不是我想要的。

任何想法? 感谢

1 个答案:

答案 0 :(得分:2)

我认为你应该覆盖页面InitializeCulture方法并在那里设置CurrentUiCulture。 有关详细信息,请参阅:http://msdn.microsoft.com/en-us/library/system.web.ui.page.initializeculture.aspx