【问题标题】:Make MVC Web application to use default resource file使 MVC Web 应用程序使用默认资源文件
【发布时间】:2018-05-14 12:37:57
【问题描述】:

我有一个使用资源文件进行翻译的 asp net MVC 应用程序。其中一些资源文件在多个应用程序之间共享。通常这会按预期工作:

ProjectX
- ClientStrings.resx     <--- this one is picked for swedish
- ClientStrings.en.resx  <--- this one is picked for english
Shared
- Shared.resx     <--- this one is picked for swedish
- Shared.en.resx  <--- this one is picked for english

我的问题是一个应用程序不应该被翻译成任何其他语言 - 它应该只使用瑞典语。

ProjectY
- ClientStrings.resx     <--- this one is picked (only one choice)   
Shared
- Shared.resx     
- Shared.en.resx     <--- ISSUE: this one is always picked (even for swedish)

更改语言的方法是更改​​浏览器语言。请帮助我理解为什么这对 ProjectY 不起作用!

【问题讨论】:

  • 调试时Thread.CurrentThread.CurrentCultureThread.CurrentThread.CurrentUICulture的值是多少?
  • 可能你应该把ClientStrings.resx改成ClientStrings.&lt;culture&gt;.resx
  • @CodeNotFound 调试时不会出现问题,文化是瑞典语。
  • @Rahul 试试这个,谢谢!
  • @CodeNotFound 我无法直接访问运行出现问题的代码的环境(很遗憾)。我能说的是,当我在本地运行它时(没有出现问题),我分别得到了 sv-se 和 sv 的值。如果如您所说,这些值决定了选择的文件,那么真正的问题是为什么这不适用于 ProjectY,而它却完美地适用于 ProjectX。如果有关项目的更多信息可以提供帮助,请告诉我!

标签: c# asp.net-mvc resources cultureinfo


【解决方案1】:

问题在于应用浏览器的语言。比较两个项目 web.config-files 我发现以下行是浏览器语言应用所必需的,而 ProjectY 中缺少:

<globalization enableClientBasedCulture="true" uiCulture="auto" culture="auto"></globalization>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-06
    • 2014-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多