资源文件无法正常本地化

时间:2016-01-04 16:54:20

标签: c# globalization

我有2个资源文件:

  • Resource.resx,是公开的,
  • Resource.en-GB.resx,在“Resources”文件夹中设置为“No code generation”。

它们都包含密钥“BtnConnecter”,其中Resource.resx中的法语值和Resource.en-GB.resx中的英语值。在我看来,我使用@ Resource.BtnConnecter。

我的Chrome设置为法语,我的IE设置为英语,但我总是看到法语价值。

(请注意,我有另一个本地化的C#项目。我在IE中有英文值,在Chrome中有法文值。问题不在导航器配置中。)

我错过了什么?

2 个答案:

答案 0 :(得分:3)

您是否修改了Web.config以支持全球化?具体而言,cultureuiCultureenableClientBasedCulture属性。

<configuration>
    <system.web>
        <globalization fileEncoding="utf-8" requestEncoding="utf-8" culture="auto" uiCulture="auto" enableClientBasedCulture="true" />

有关此属性的更多信息,请参阅MSDN documentation

答案 1 :(得分:0)

有几件事要检查:首先,你的IE设置为en-GB,还是en-US(或只是en)?您可以尝试将英语resx重命名为'.en.resx'。这将有所帮助,因为resx文件级联。如果在语言中找不到“en-US”的resx文件,它将在求助于默认值之前查找“en”。所以你最好使用特定于语言的resx文件而不是文化特定的文件。

其次,您可能需要在resx文件中指定“BtnConnecter.Text”,而不仅仅是“Btn.Connecter”。这是因为控件的多个部分经常需要全球化,所以格式'control.property'用作关键,而不仅仅是'控制'。

最后,如果你有一个正常运作的功能项目,我会比较两者。它们之间可能存在需要修复的差异。我会仔细检查您的resx文件上的build-action属性以及“Copy to Output Directory”属性。