ASP.NET中的国际化如何运作?

时间:2012-01-19 06:06:21

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

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

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如何确定要渲染的值?是否有任何命名惯例?

1 个答案:

答案 0 :(得分:4)

  

在运行时,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