代码之家  ›  专栏  ›  技术社区  ›  Soraz Krishnendu

ASP.NET MVC中的本地化

  •  4
  • Soraz Krishnendu  · 技术社区  · 16 年前

    Visual Studio 2008

    我想在我的ASP.NET MVC站点中引入一些本地化。

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

    <title><%= Strings.MyView_Title %></title>
    

    然后我继续添加一个文件“strings.da.resx”。这个文件创建在第一个文件的旁边,默认为“访问修饰符:不编译”,而第一个(没有语言修饰符的)默认为“内部”。

    我可以在bin目录中看到使用resource.dll创建了一个目录(“da”),但是,我在我的站点上看不到任何翻译的文本。

    我已经检查了浏览器,唯一首选的语言是丹麦语(da dk),但我只看到英文文本。

    问题: 1)是否需要在web.config中启用某些功能? 2)我是否创建了正确类型的文件(即2应为“无编译”)?

    2 回复  |  直到 15 年前
        1
  •  6
  •   Martin Peck    16 年前

    在您的视图中,是否有页面指令? 如果是,您有uiCulture=“auto”和culture=“auto”吗?

    例如。。。

    <%@ Page Language="C#" Inherits="..." 
        culture="auto" uiculture="auto" %>
    

    这将确保由请求中的浏览器传递的接受语言头用于设置线程区域性。正是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,因此,许多事情仍然是相关的。

        2
  •  2
  •   Ofigenn    16 年前

    首先,您必须创建将切换请求线程区域性的操作筛选器。 或 设置你的 globalization 元素到uiCulture=“auto”和culture=“auto”

    检查这个 screencast ,它是俄语的,但代码示例是可以理解的。