【问题标题】:How does Internationalization in ASP.NET work?ASP.NET 中的国际化如何工作?
【发布时间】:2012-01-19 06:06:20
【问题描述】:

我想知道是否可以通过简单地为每种所需语言创建资源文件来使您的应用程序多语言
喜欢

Resource.resx for English      //string abc(name)=xyz(value)
Resource.zh.resx for Chinese   //string abc(name)=zh(value)

只需在您的视图中放置一个字符串(仅支持多语言的单个视图) 类似的字符串

@appName.Resource.abc

<globalization culture="en-GB" uiCulture="auto:en-GB" />

在 Web.Config 中

现在我的问题是

这是否足以开始使用多语言网站,即如果我将浏览器中的首选语言更改为中文,页面内容会发生变化?但这是如何工作的呢?

我所知道的是

  • 浏览器返回首选文化列表

需要知道 - 如何映射到特定资源文件。我的意思是我的示例中的两个资源文件(Resource.resx 和 Resource.zh.resx)都有一个具有不同值的“abc”属性。 asp.net 如何确定要渲染的值?有什么命名约定吗?

【问题讨论】:

    标签: asp.net asp.net-mvc asp.net-mvc-3 internationalization


    【解决方案1】:

    在运行时,ASP.NET 使用最匹配的资源文件 CurrentUICulture 属性的设置。用户界面文化 线程是根据页面的 UI 文化设置的。例如,如果 当前的 UI 文化是西班牙语,ASP.NET 使用编译版本 WebResources.es.resx 文件。如果当前没有匹配 UI 文化,ASP.NET 使用资源回退。它从搜索开始 特定文化的资源。如果这些不可用,它 寻找中立文化的资源。如果这些不是 发现,ASP.NET 加载默认资源文件。在这个例子中, 默认资源文件是 WebResource.resx。

    参考:ASP.NET Web Page Resources Overview

    Microsoft .NET Internationalization

    【讨论】:

    • 这意味着假设如果UICulture是“es”那么resourceManager首先搜索resource.es.resx文件(编译)?
    • 好的,谢谢米奇。还有一件事,现在我希望用户为整个应用程序选择一次首选语言。建议我最简单的步骤
    • @Kannas:也许你应该提出一个新问题?
    猜你喜欢
    • 2011-03-06
    • 1970-01-01
    • 2017-12-09
    • 2011-10-15
    • 1970-01-01
    • 1970-01-01
    • 2011-09-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多