【问题标题】:ASP.NET Development Server ignoring Browser CultureASP.NET 开发服务器忽略浏览器文化
【发布时间】:2009-05-20 01:10:23
【问题描述】:

我正在尝试实现一个简单的例子来说明 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,无论我在浏览器的“语言”对话框中设置了什么。

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

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

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

【问题讨论】:

    标签: asp.net globalization


    【解决方案1】:

    默认情况下,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 使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-04
      • 1970-01-01
      相关资源
      最近更新 更多