1

我正在尝试实现一个简单的例子来说明 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!” 在一页中,“Bonjour!” 在另一个。

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

话虽如此,浏览器配置正确,因为谷歌以法语显示。

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

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

4

1 回答 1

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"是您正在寻找的重要部分,尽管其余部分可能也是一个好主意。另请注意,您可能在文档中看到的 enableClientBasedCulture 属性当前未被 ASP.NET 使用。

于 2009-05-20T01:28:03.983 回答