【发布时间】:2011-11-23 03:11:12
【问题描述】:
我有一个Default.aspx 文件,我可以在其中获取本地化值:
Default.aspx:
<asp:Localize meta:resourcekey="lblTitle" runat="server">Welcome</asp:Localize>
然后我创建一个匹配的 fallback 资源文件:
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
除非它不起作用:
我正在关注Microsoft says:
例如,如果您在 App_LocalResources 文件夹中有一个名为 Default.aspx 的页面,您可能会创建以下文件:
Default.aspx.resx。如果没有找到语言匹配,这是默认的本地资源文件(后备资源文件)。
Default.aspx.es.resx。这是西班牙语的资源文件,没有文化信息。
Default.aspx.es-mx.resx。这是专门针对西班牙语(墨西哥)的资源文件。
Default.aspx.fr.resx。这是法语的资源文件,没有文化信息。
为什么 .NET 没有做 .NET 应该做的事情?
更新:
来自 MSDN:
为不同语言选择资源文件
ASP.NET 可以将页面的 UICulture 和 Culture 属性设置为浏览器传递的语言和区域性值。 ... 详情请见How to: Set the Culture and UI Culture for ASP.NET Web Page Globalization.
如何让 ASP.NET 将页面的 UICulture 和 Culture 属性设置为浏览器传递的语言和文化值?
来自How to: Set the Culture and UI Culture for ASP.NET Web Page Globalization:
用户可以在浏览器中设置 UI 文化和文化。为了 例如,在 Microsoft Internet Explorer 中,在工具菜单上,用户可以 单击 Internet 选项,在常规选项卡上,单击语言,然后 设置他们的语言偏好。如果 enableClientBasedCulture 设置了 Web.config 文件中的全球化元素的属性 为 true,ASP.NET 可以为网页设置 UI 文化和文化 自动,基于浏览器发送的值。
以声明方式设置 ASP.NET 网页的文化和 UI 文化
- 要让 ASP.NET 将 UI 文化和文化设置为当前浏览器设置中指定的第一种语言,请将 UICulture 和 Culture 设置为 auto。或者,您可以将此值设置为 auto:culture_info_name,其中 culture_info_name 是文化名称。有关文化名称的列表,请参阅 CultureInfo。您可以在 @ Page 指令或 Web.config 文件中进行此设置。
【问题讨论】:
标签: asp.net resources localization globalization