ASP.NET开发服务器忽略浏览器文化

时间:2009-05-20 01:10:23

标签: asp.net globalization

我正在尝试实现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,这显然不是我输入的内容。

有人知道为什么这不能正常工作吗?

1 个答案:

答案 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属性。