无法在 Visual Studio 2017 中更改程序集的默认语言

Posted

技术标签:

【中文标题】无法在 Visual Studio 2017 中更改程序集的默认语言【英文标题】:Can't change default language of an assembly in Visual Studio 2017 【发布时间】:2017-06-18 20:12:06 【问题描述】:

我的应用程序支持三种语言: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 资源?

【问题讨论】:

如果我错了,请纠正我,但我认为这与 assembly 语言没有任何关系,如“由汇编程序转换为机器代码的语言” “现在,是吗?您可能希望将标题更改为不那么含糊的东西。 【参考方案1】:

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

appxmanifest 中的默认语言,在 csproj 文件中保存为 <DefaultLanguage>en-GB</DefaultLanguage>

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

除此之外,您必须使用完整的语言限定符(en-US、en-GB、...)作为默认语言,因为“en”只是被重定向到 en-US 作为默认语言。其他语言可以是仅语言限定符 (fr)。

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

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

恕我直言,最好使用完整的限定词,因为您的翻译是用一种区域语言(通常是主要区域)完成的,因此 fr-FR 标记您的资源文件比仅使用 fr 更准确。

【讨论】:

>>接下来,您必须使用完整的语言限定符(en-US、en-GB、...)作为默认语言,因为 'en' 只是重定向到 en-美国作为默认语言。其他语言可以是仅语言限定符 (fr)。我同意这就是它的行为方式,但我不明白为什么这是有道理的。当我想定位所有说英语的文化时,为什么我不得不选择 en-US? 您提供的本地化(行为与行为)是 en-US 或 en-GB,而不仅仅是“en”。但这没关系,因为应用程序将回退到您提供的语言(请参阅引用的块)。

以上是关于无法在 Visual Studio 2017 中更改程序集的默认语言的主要内容,如果未能解决你的问题,请参考以下文章

win7安装visual studio 2017无法进入安装界面

Visual Studio 2017 - 无法安装 WDK 扩展

无法在 Visual Studio 2017 中更改程序集的默认语言

无法在 Visual Studio 2017 RC 中添加全局 JavaScript Intellisense 引用

我无法在Visual Studio 2017中创建android密钥库

无法在 Visual Studio 2017 的共享项目中创建文件夹