资源文件的本地化不起作用
本文关键字:不起作用 本地化 源文件 资源 | 更新日期: 2023-09-27 18:28:59
我有两个资源文件:
- Resource.resx,它是公共的,以及
- Resource.en-GB.resx,在"Resources"文件夹中设置为"No code generation"
它们都包含密钥"BtnConnector",法语值在Resource.resx中,英语值在Resource.en-GB.resx。在我看来,我使用@Resource.BtnConnecter.
我的Chrome是用法语设置的,IE是用英语设置的,但我总是看到法语的价值。
(注意,我有另一个正在进行本地化的C#项目。我在IE中有英文值,在Chrome中有法文值。问题不在导航器配置中。)
我错过了什么?
您是否修改了Web.config以支持全球化?具体地,culture
、uiCulture
和enableClientBasedCulture
属性。
<configuration>
<system.web>
<globalization fileEncoding="utf-8" requestEncoding="utf-8" culture="auto" uiCulture="auto" enableClientBasedCulture="true" />
有关此属性的详细信息,请参阅MSDN文档。
有几件事需要检查:首先,你的IE设置为en-GB还是en-US(或者只是en)?您可以尝试将英语resx重命名为".en.resx"。这将有所帮助,因为resx文件是级联的。如果在语言为"en-US"的情况下找不到resx文件,则在使用默认值之前,它将查找"en"。因此,您最好使用特定于语言的resx文件,而不是特定于文化的文件。
其次,您可能需要在resx文件中指定"BtnConnecter.Text",而不仅仅是"Btn.Connecter"。这是因为控件中经常有多个部分需要全球化,因此使用格式"control.properties"作为键,而不是简单地使用"control"。
最后,如果你有一个正在运行的功能性项目,我会将两者进行比较。它们之间可能存在需要修复的差异。我会仔细检查resx文件上的生成操作属性和"复制到输出目录"属性。