ASP.NET MVC中的本地化

Sor*_*raz 4 asp.net-mvc visual-studio-2008

Visual Studio 2008

我想将一些本地化带入我的ASP.NET MVC站点.

有人建议创建一个资源文件"Strings.resx"作为一个公共强类型的资源,它很好地工作,并允许我写

<title><%= Strings.MyView_Title %></title>
Run Code Online (Sandbox Code Playgroud)

然后我继续添加一个文件"Strings.da.resx".此文件紧挨着第一个创建,默认为"Access Modifier:No Compilation",而第一个(没有语言修饰符)默认为"Interal".

我可以在bin目录中看到已经创建了一个带有resource.dll的目录("da"),但是,我看不到我网站上的任何翻译文本.

我已经与浏览器核实了唯一的首选语言是丹麦语(da-DK),但我只看到英文文本.

问题:1)我是否需要在web.config中启用某些功能?2)我是否使用正确的类型创建了正确的文件(即#2应该是"No compilation")?

Mar*_*eck 6

在您的视图中,您是否有页面指令?如果是这样,你有UICulture ="Auto"和Culture ="Auto"吗?

例如...

<%@ Page Language="C#" Inherits="..." 
    culture="auto" uiculture="auto" %>
Run Code Online (Sandbox Code Playgroud)

这将确保请求中的浏览器传递的Accept-Language标头用于设置Thread文化.这是影响要选择的资源文件的UICulture.

有关ASP.NET i18n的更多信息,这本书非常好......

http://www.amazon.co.uk/NET-Internationalization-Developers-Guide-Building/dp/0321341384/ref=sr_1_1?ie=UTF8&s=books&qid=1241010151&sr=8-1

它不包括MVC,但涵盖ASP.NET,因此,许多事情仍然是相关的.