我的应用程序支持三种语言:en,es和fr。当我构建我的(清理,从模板)UWP应用程序时,我收到消息:
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)
要删除警告,您必须在两个地方更新语言:
appxmanifest中的默认语言,它以<DefaultLanguage>en-GB</DefaultLanguage>
中性汇编语言,它作为[assembly: NeutralResourcesLanguage("en-GB")]
保存在AssemblyInfo文件中,也可以通过项目属性&gt;进行更改。装配信息。
接下来,你必须使用完整的语言限定符(en-US,en-GB,...)作为默认语言,因为&#39; en&#39;刚刚被重定向到en-US作为默认语言。其他语言可以是纯语言限定符(fr)。
请注意,使用完整限定符指定资产并不会破坏其他区域语言使用这些资源。
Windows确实跨区域匹配。例如,en-US匹配en-US,然后是en,然后是en - *。
使用全限定符更好,因为您的翻译是在一种区域语言(通常是主要区域)中完成的,因此fr-FR标记您的资源文件比仅仅更准确