繁体   English   中英

Xamarin.Forms:UWP应用程序的本地化

[英]Xamarin.Forms: Localization of the UWP app

如果我在UWP设备上运行我的应用程序,我会在“ Output窗口中收到以下警告:

MakePRI:警告0xdef00522:为语言'en,de'找到的资源,但找不到默认语言的资源:'de-DE,en-US'。 使用默认语言更改默认语言或限定资源。 http://go.microsoft.com/fwlink/?LinkId=231899

不知道这是否相关,但我也知道

1> C:\\ Program Files(x86)\\ MSBuild \\ Microsoft \\ VisualStudio \\ v14.0 \\ AppxPackage \\ Microsoft.AppXPackage.Targets(2459,5):警告:APPX4001:构建属性AppxBundlePlatforms未明确设置并基于计算目前正在建筑。 使用“创建应用程序包”向导或编辑项目文件进行设置。

这个页面说明我有语言特定的资源,我没有用语言标签限定。 我怎样才能知道这些资源是哪些资源?

我在Assets文件夹中有图像,但它们与语言无关。 此外,我已将Package.appxmanifest的默认语言设置为de-DE 如果我从警告中搜索语言缩写,我只能在Debug输出文件夹中找到priconfig.xmlAppxManifest.xml

我该怎么做才能删除此警告?

编辑:

如果我添加AppResources.en-US.resx文件(目前我已将en-US设置为Package.appxmanifest默认语言),警告似乎消失了。 另外,我有一个AppResources.de.resxAppResources.resx的文件(应该是en )。 但是为什么示例项目不需要这样的文件,尽管应该有相同的设置? 我错过了什么?

只是为了扩展Nico Zhu - MSFT的答案,如果您使用.Net Standard,则没有assemblyInfo.cs文件,因为所有内容都存储在csproj文件中。 因此,只需转到共享项目的属性,将Project中性语言更改为resx默认文件。 或者您可以右键单击项目并编辑项目和下面的行。

对我来说问题是,在从PCL转换为Net Standard之后,突然UWP应用程序没有选择默认资源文件en-US。 我认识到因为我在assmeblyInfo.cs中有这个设置,因为它被删除了,它没有用。 但不知何故,它适用于Android项目。

  <PropertyGroup>
     <NeutralLanguage>en-US</NeutralLanguage>
  </PropertyGroup>

在此输入图像描述

如果我添加AppResources.en-US.resx文件(目前我已将en-US设置为Package.appxmanifest中的默认语言),警告似乎消失了。 另外,我有一个AppResources.de.resx和AppResources.resx的文件(应该是en)。 但是为什么示例项目不需要这样的文件,尽管应该有相同的设置? 我错过了什么?

如你所说, AppResources.resx是en。 您可以展开可移植类库(PCL)项目中的Properties节点,然后双击AssemblyInfo.cs文件。 将以下行添加到文件中以将中性资源汇编语言设置为英语:

[assembly: NeutralResourcesLanguage("en")]

这会通知资源管理器应用程序的默认文化,因此确保当应用程序在英语语言环境中运行时,将显示语言中性RESX文件(AppResources.resx)中定义的字符串。

您已在Package.appxmanifest中将en-US设置为默认语言,但是没有与之对应的此类文件。 所以它会发出警告。

示例项目的默认语言是en-US ,并且没有与之对应的此类文件。 它也向我发出同样的警告。 如果将默认语言修改为en ,警告将消失。 因为它已将AppResources.resx设置为AssemblyInfo.cs文件中的en

你可以参考AssemblyInfo支持的语言

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM