0

在我的 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

我对其进行了调试,并且 CurrentUICulture 在 Page_Load 的开头始终是“en_US”。

我也尝试设置 UICulture 和 Culture 属性,但没有成功。

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

有任何想法吗?谢谢

4

1 回答 1

2

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

于 2013-05-14T14:19:56.507 回答