对于我想要支持的每种语言,我都有几个资源文件,命名如下:
NavigationMenu.en-US.resx
NavigationMenu.ru-RU.resx
NavigationMenu.uk-UA.resx
文件位于MySolution/Resources/NavigationMenu
文件夹中。
我有如下设置CurrentCulture
的动作CurrentUICulture
public ActionResult SetLanguage(string lang)
{
try
{
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(lang);
Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture(lang);
return Redirect(Request.UrlReferrer.AbsoluteUri);
}
catch(Exception)
{
return RedirectToAction("Index");
}
}
lang
参数值是uk-UA
,ru-RU
或者en-US
取决于单击了我视图中的链接。我也有网络配置全球化定义部分:
<globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="ru-RU" uiCulture="ru-RU" />
当我的应用程序启动时,我按预期使用俄语,但是当我尝试通过SetLanguage
操作将语言更改为英语时,我的视图中没有任何语言变化。NavigationMenu.SomeProperty
仍然是俄罗斯人。我错过了什么?