如何在MVC中使用web.config强制执行特定的uiculture

时间:2013-02-14 18:29:15

标签: asp.net-mvc localization web-config

我已将Resource.fr-FR.resx添加到我的项目中并完成了全球化设置 web.config如下。

<system.web>
    <globalization culture="fr-FR" uiCulture="fr"/>
</system.web>
根据{{​​3}}

,这就是您所需要的一切

但是当我运行我的应用程序时,它仍然是英文

我在Application_Start()中检查过“Thread.CurrentThread.CurrentUICulture”,它说FR。

我错过了什么? 同样的事情已发布在 http://msdn.microsoft.com/en-us/library/bz9tc508%28v=vs.80%29.aspx

但没有答案。

1 个答案:

答案 0 :(得分:0)

文化与语言不是一回事。 “文化”是一组日期/时间,货币,日历和其他一些内容的格式规则(如文本标题套管规则)。

设置文化不会自动本地化您的应用程序(本地化是指所有人类可读的字符串都被翻译成另一种语言,例如法语)。本地化和UI翻译是一个漫长,痛苦和昂贵的过程。 ASP.NET不会为你做这件事。

如果要本地化应用程序,则需要确保所有人类可读的字符串都存储在资源文件(.NET中的.resx)中,并且您已创建包含其他语言的已翻译字符串的“附属程序集”。然后,您需要确保在应用程序中向用户显示的字符串使用Resources API(或IDE生成的帮助程序类)。这很痛苦,因为它意味着从* .aspx文件中继续...

<p>Hello, welcome. This is in English.</p>

......对此:

<p><%= Resources.WelcomeMessage %></p>

...或者这个(如果有太多的字符串要由Resources帮助器类管理):

<p><%= ResourceManager.GetString("HomePage_WelcomeMessage") %></p>

......当然,这样做可以打破网站的所有视觉设计师。