首页 文章

如何在Windows Phone中使用中性语言

提问于
浏览
2

我面临以下问题:

  • 我已使用resx文件将我的应用程序翻译成不同的语言 . 我想在其他应用程序中使用相同的resx文件 .

  • 对于不同的应用程序,我应该能够更改默认语言(某些应用程序仅提供西班牙语,其他应用程序仅提供英语,其他应用程序提供多语言功能)

我想我可以命名资源LanguageStrings.es.resx和LanguageStrings.en.resx,并使用NeutralResourcesLanguageAttribute来设置应用程序的默认语言 .

但是,当应用程序中没有LanguageStrings.resx(不变文件)时,应用程序似乎中断(MissingManifestResourceException) . 我认为资源管理器应该使用NeutralResourcesLanguageAttribute中的设置来查找正确的资源(例如,回退到西班牙语)而不是查找中性文件 .

我的假设是正确的,我是否遇到了平台错误?我注意到ResourceManager.GetNeutralResourcesLanguage没有返回使用NeutralResourcesLanguageAttribute定义的语言,而是返回了不变的文化

2 回答

  • 0

    如果没有不变的资源文件( LanguageStrings.resx ),编译器将不会获取它 . 您应该让英语资源文件(当前 LanguageStrings.en.resx )成为不变文件,即 . 文件名中没有 .en ,然后设置

    [assembly: NeutralResourcesLanguage("en")]

    所有.NET应用程序都以这种方式工这对Windows Phone来说不是一个独特的“问题” .

  • 2

    我相信如果您在csproj中的元素中指定了您的语言 - 您需要在支持的文化中使用您尝试使用的resx . 如果您使用所谓支持的语言且resx不在那里 - 您将获得MissingManifestResourceException . 如果不支持当前语言,将会选择中性语言 .

相关问题