对于我想要支持的每种语言,我都有几个资源文件,命名如下:
NavigationMenu.en-US.resx
NavigationMenu.ru-RU.resx
NavigationMenu.uk-UA.resx
Run Code Online (Sandbox Code Playgroud)
文件位于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");
}
}
Run Code Online (Sandbox Code Playgroud)
lang参数值是uk-UA,ru-RU或者en-US取决于我的视图中的哪个链接被点击。我也有 web 配置全球化定义部分:
<globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="ru-RU" uiCulture="ru-RU" />
Run Code Online (Sandbox Code Playgroud)
当我的应用程序启动时,我按预期使用俄语,但是当我尝试通过SetLanguage操作将语言更改为英语时,我的视图中没有语言更改。NavigationMenu.SomeProperty仍然是俄罗斯人。我错过了什么?
| 归档时间: |
|
| 查看次数: |
31948 次 |
| 最近记录: |