我有一个名为
我然后创建一个匹配的回退资源文件:
我把浏览器的语言设置改成了法语。
例如,如果您在App_LocalResources文件夹中有一个名为Default.aspx的页面,则可以创建以下文件:
- Default.aspx.resx。如果没有找到语言匹配项,则这是默认的本地资源文件(回退资源文件)。 - Default.aspx.es.resx。这是西班牙语的资源文件,没有区域信息。 - Default.aspx.es-mx.resx。这是特定于西班牙语(墨西哥)的资源文件。 - Default.aspx.fr.resx。这是法语的资源文件,没有区域信息。
为什么.NET不做应该做的事情呢?
更新:
来自MSDN:
引用:
我该如何让ASP.NET将页面的
来自如何:为 ASP.NET Web 页面全球化设置区域性和 UI 区域性:
用户可以在浏览器中设置UI文化和区域性。例如,在Microsoft Internet Explorer中,用户可以点击“工具”菜单,选择“Internet选项”,在“常规”选项卡中点击“语言”,然后设置他们的语言偏好。如果Web.config文件中全局化元素的enableClientBasedCulture属性设置为true,则ASP.NET可以根据浏览器发送的值自动设置Web页面的UI文化和区域性。
要在ASP.NET Web页面上声明式地设置文化和UI文化,请执行以下操作:
- 要让ASP.NET将UI文化和区域性设置为当前浏览器设置中指定的第一种语言,请将UICulture和Culture设置为auto。或者,您可以将此值设置为auto:culture_info_name,其中culture_info_name是一个区域名称。有关区域名称的列表,请参见CultureInfo。您可以在@ Page指令或Web.config文件中进行此设置。
Default.aspx
的文件,我在其中获取本地化值:
Default.aspx:
<asp:Localize meta:resourcekey="lblTitle" runat="server">Welcome</asp:Localize>
我然后创建一个匹配的回退资源文件:
。
Default.aspx.resx:
lblTitle.Text Welcome to Stackoverflow Localized
这样就可以:
Default.aspx.fr.resx:
lblTitle.Text Bienvenue Stackoverflow
我把浏览器的语言设置改成了法语。
(它确实这样做):
GET http://stackoverflow.com/ HTTP/1.1
Accept: application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, application/x-ms-xbap, */*
Accept-Language: fr-CH,qps-ploc;q=0.5
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E)
Accept-Encoding: gzip, deflate
Connection: Keep-Alive
Host: stackoverflow.com
除了它根本不起作用:
例如,如果您在App_LocalResources文件夹中有一个名为Default.aspx的页面,则可以创建以下文件:
- Default.aspx.resx。如果没有找到语言匹配项,则这是默认的本地资源文件(回退资源文件)。 - Default.aspx.es.resx。这是西班牙语的资源文件,没有区域信息。 - Default.aspx.es-mx.resx。这是特定于西班牙语(墨西哥)的资源文件。 - Default.aspx.fr.resx。这是法语的资源文件,没有区域信息。
为什么.NET不做应该做的事情呢?
更新:
来自MSDN:
引用:
选择不同语言的资源文件
ASP.NET可以将页面的UICulture和Culture属性设置为浏览器传递的语言和文化值。...有关详细信息,请参阅如何:设置ASP.NET Web页面全球化的Culture和UI Culture。我该如何让ASP.NET将页面的
UICulture
和Culture
属性设置为浏览器传递的语言和文化值?
来自如何:为 ASP.NET Web 页面全球化设置区域性和 UI 区域性:
用户可以在浏览器中设置UI文化和区域性。例如,在Microsoft Internet Explorer中,用户可以点击“工具”菜单,选择“Internet选项”,在“常规”选项卡中点击“语言”,然后设置他们的语言偏好。如果Web.config文件中全局化元素的enableClientBasedCulture属性设置为true,则ASP.NET可以根据浏览器发送的值自动设置Web页面的UI文化和区域性。
要在ASP.NET Web页面上声明式地设置文化和UI文化,请执行以下操作:
- 要让ASP.NET将UI文化和区域性设置为当前浏览器设置中指定的第一种语言,请将UICulture和Culture设置为auto。或者,您可以将此值设置为auto:culture_info_name,其中culture_info_name是一个区域名称。有关区域名称的列表,请参见CultureInfo。您可以在@ Page指令或Web.config文件中进行此设置。