如何使用中性语言资源作为后备?

时间:2018-11-14 15:07:50

标签: c# .net xamarin resx

我有一个包含以下内容的解决方案:

  • LocalizationStringRes.resx-拥有中性资源,当前为英语。
  • LocalizationStringRes.en.resx-保留英语翻译值。
  • LocalizationStringRes.de.resx-保留德语翻译值。

我的应用程序中还有一个组合框,您可以在其中选择语言。当前它包含“德语”和“英语”。除此之外,我还要检查用户的系统设置中的语言。

因此,假设用户选择“英语”,则在获取值时将自动使用LocalizationStringRes.en.resx,因为应用程序将查找其中包含en的文件。

我认为同时保留LocalizationStringRes.resxLocalizationStringRes.en.resx的英语翻译是我想避免的双重数据存储。因此,我尝试仅删除LocalizationStringRes.en.resx

我的期望:

  • 我希望一旦用户选择英语作为他/她的语言,应用程序就会查找其中带有en的文件。如果找不到,它将自动使用LocalizationStringRes.resx作为后备。

实际发生的情况:

  • LocalizationStringRes.de.resx被用作显示德语翻译值的后备广告。

如果找不到对应语言字符串的.resx文件(en-USfr-FR等),如何强制我的应用程序始终使用中性语言值?

1 个答案:

答案 0 :(得分:1)

您可以添加

[assembly: NeutralResourcesLanguage("en", UltimateResourceFallbackLocation.MainAssembly)]

到AssemblyInfo.cs