.net mvc应用程序加载错误的语言资源文件

时间:2012-10-23 12:11:15

标签: asp.net-mvc-3 localization resources

大家好我正在写一个小的asp.net mvc应用程序,我想让它本地化并支持多种语言我发现很多有用的文章

我添加了语言路由 我使用自定义actionfilter属性来选择当前线程的当前文化,具体取决于url中的语言代码,例如英语的“site.com/en/controller/action”或阿拉伯语的“site.com/ar/controller/action”。 / p>

我为英语创建了“Resources \ Views \ Shared \ Layout.resex”,为阿拉伯语创建了“Resources \ Views \ Shared \ Layout.ar.resex”。

它只与阿拉伯语本地化相关的问题,我手动将当前线程文化设置为英语并删除了actionfilter属性,但它仍然显示阿拉伯语内容!!这是什么问题,这是crazr

1 个答案:

答案 0 :(得分:3)

没有更多细节或代码很难分辨,但是一件容易的事就是你的web.config文件的配置。如果<globalization uiCulture="auto" culture="auto" />中有<system.web>(带有“auto”而非文化标识符),那么ASP.NET将使用由浏览器的语言设置决定的accept-language标头自动选择你的线程的文化。因此,您所看到的内容可以部分解释为具有此配置并在浏览器的语言列表中使用阿拉伯语。

编辑:问题是代码需要使用Thread.CurrentThread.CurrentUICulture来控制使用的本地化资源(Thread.CurrentThread.CurrentCulture是另一回事,不会影响本地化但依赖于区域设置的格式化/解析,例如日期)。