我正在尝试实现ASP.NET更改文化的简单示例。我正在运行Windows 7,IE 8和VS 2008.我的标签看起来像这样:
<asp:Label ID="TextBox1" runat="server" meta:resourcekey="Greeting"></asp:Label>
我在App_LocalResources中有两个文件:Default.aspx.resx和Default.aspx.fr.resx。
在它们中,我有一个名为“Greeting.Text”的字符串值,值设置为“Hello!”在一页,和“卓悦!”在另一个。
我的浏览器设置为首选fr-FR作为默认语言。当我使用ASP.NET Development Server通过F5或Shift-F5打开页面时,无论我在浏览器的“语言”对话框中设置了什么,该页面显然都将我的文化识别为en-US。
话虽这么说,浏览器配置正确,因为谷歌用法语显示。
当我向页面添加标签并将标签的文本设置为CurrentCulture或CurrentUICulture的名称时,我得到en-US,这显然不是我输入的内容。
有人知道为什么这不能正常工作吗?
答案 0 :(得分:5)
默认情况下,ASP.NET不会根据浏览器自动更改区域性。将其添加到您的web.config:
<configuration>
<system.web>
<globalization culture="auto"
enableBestFitResponseEncoding="false"
fileEncoding="utf-8"
requestEncoding="utf-8"
responseEncoding="utf-8"
responseHeaderEncoding="utf-8"
uiCulture="auto"/>
</system.web>
</configuration>
注意,culture="auto"
和uiCulture="auto"
是您正在寻找的重要部分,尽管其余的也可能是一个好主意。另请注意,ASP.NET在当前时间不会使用您在文档中看到的enableClientBasedCulture属性。