2017-06-18 142 views
1

我的应用程序支持三种语言:en,es和fr。当我建立我的(干净,从模板)UWP应用程序,我得到的消息:无法更改Visual Studio 2017中程序集的默认语言

warning PRI257: 0xdef00522 - Resources found for language(s) 'en,es,fr' but no resources found for default language(s): 'en-US'. Change the default language or qualify resources with the default language. 

于是我进入清单,并改变从EN-US为默认语言EN-GB,当我重新编译我得到:

warning PRI257: 0xdef00522 - Resources found for language(s) 'en,es,fr' but no resources found for default language(s): 'en-GB,en-US'. Change the default language or qualify resources with the default language. 

什么给?如何替换UWP应用程序中的默认语言,以便它不尝试查找en-US资源?

+0

如果我错了,请纠正我,但我认为这与“汇编语言”中的*汇编语言无关,现在呢?您可能希望将标题更改为不太模糊的内容。 –

回答

0

要删除的警告,你必须更新2个地方的语言:在appxmanifest

  • 默认语言,它被保存在的csproj文件<DefaultLanguage>en-GB</DefaultLanguage>

  • 中性汇编语言,这保存在AssemblyInfo文件中作为[assembly: NeutralResourcesLanguage("en-GB")],也可以通过项目的属性>程序集信息进行更改。

Assemly information

下一步,你必须使用一个完整的语言限定(EN-US,EN-GB,...)作为默认语言,如 '恩' 刚刚被重定向到en-US作为默认语言。其他语言可以是仅限语言的限定词(fr)。

请注意,使用完全限定符指定您的资产不会破坏使用这些资源的其他区域语言。

Windows确实跨区域匹配。例如,en-US与en-US匹配,然后是en,然后是en- *。

恕我直言,这是更好的使用完整的合格者为您的翻译在区域语言(经常的主要区域)的一个完成的,所以FR-FR是更准确的标记您的资源文件不仅仅是FR。

+0

>>接下来,您必须使用完整语言限定词(en-US,en-GB,...)作为默认语言,因为'en'只会被重定向到en-US作为默认语言。其他语言可以是仅限语言的限定词(fr)。我同意这是它的表现,但我不明白为什么这是有道理的。为什么当我想要定位所有讲英语的文化时,我不得不选择en-US? –

+0

您提供的本地化(行为vs行为)是en-US或en-GB,而不仅仅是'en'。但这并不重要,因为应用程序将回退到您提供的语言(请参阅引用的块)。 – Bart

相关问题