ASP.NET C#语言文件不起作用

时间:2009-03-31 08:07:41

标签: c# asp.net localization

我刚开始使用显式资源文件。我执行了以下步骤:

  • 在根目录中创建文件夹:App_GlobalResources
  • 添加两个resx文件:LocalizedText.en-us.resxLocalizedText.resx
  • 在这两个文件中,我都有一个名为“InstitutionTitle
  • 的值
  • LocalizedText.en-us.resx中,值为“Institution”,LocalizedText.resx中的值为“Instelling
  • 在我的.aspx文件中,我有以下标签:

    <asp:Label ID="lblInstitution" runat="server" Text="<%$ Resources:LocalizedText, InstitutionTitle %>" />

当我运行此页面时,我总是得到荷兰语版本。无论我是否在我的浏览器(FF和IE7)中设置语言,我总是得到荷兰语版本。当我请求浏览器的语言时,我得到en-us(使用:Response.Write(Request.Headers["Accept-Language"]);)。

问题是什么?我该如何解决?

2 个答案:

答案 0 :(得分:2)

在浏览器中设置语言首选项是不够的。您必须确保在ASP.NET中相应地设置当前线程的 Culture UICulture 属性。

您可以在页面上以编程方式或声明方式执行此操作(&lt;%@ Page%&gt;指令的Culture和UICulture属性)。

或者您可以通过设置下面显示的web.config条目并将页面/母版页的Culture / UICulture属性设置为“auto”来让ASP.NET自动设置它们。

// web.config:
<globalization enableClientBasedCulture="true" ...>

// page/masterpage:
<%@ Page ... Culture="auto" UICulture="auto" %>

查看this page了解详情。

答案 1 :(得分:0)

@martijn:

  1. 检查浏览器缓存设置。 缓存应该一直关闭 在开发时。

  2. 安装Firebug(FF)和Fiddler(IE) 看看被转移的是什么 电线。

  3. 希望这会有所帮助......

    签署

    同胞乡下人