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

Dav*_*ton 1 asp.net globalization

我正在尝试实现ASP.NET更改文化的简单示例.我正在运行Windows 7,IE 8和VS 2008.我的标签看起来像这样:

<asp:Label ID="TextBox1" runat="server" meta:resourcekey="Greeting"></asp:Label>
Run Code Online (Sandbox Code Playgroud)

我在App_LocalResources中有两个文件:Default.aspx.resx和Default.aspx.fr.resx.

在它们中,我有一个名为"Greeting.Text"的字符串值,值设置为"Hello!" 在一页,和"卓悦!" 在另一个.

我的浏览器设置为首选fr-FR作为默认语言.当我使用ASP.NET Development Server通过F5或Shift-F5打开页面时,无论我在浏览器的"语言"对话框中设置了什么,该页面显然都将我的文化识别为en-US.

话虽这么说,浏览器配置正确,因为谷歌用法语显示.

当我向页面添加标签并将标签的Text设置为CurrentCulture或CurrentUICulture的名称时,我得到了en-US,这显然不是我输入的内容.

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

Erv*_*ter 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>
Run Code Online (Sandbox Code Playgroud)

注意,culture="auto"并且uiCulture="auto"是你正在寻找的重要部分,尽管其余的也可能是一个好主意.另请注意,ASP.NET在当前时间不会使用您在文档中看到的enableClientBasedCulture属性.