首页 文章

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

提问于
浏览
2

如果我在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未显式设置且基于计算目前正在建筑 . 使用“创建应用程序包”向导或编辑项目文件进行设置 .

This page说,我有语言特定的资源,我没有使用语言标签 . 我怎样才能知道这些资源是哪些资源?

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

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

Edit:

如果我添加 AppResources.en-US.resx 文件(目前我在 Package.appxmanifest 中将 en-US 设置为默认语言),警告似乎消失了 . 另外,我有一个 AppResources.de.resxAppResources.resx 的文件(应该是 en ) . 但为什么sample project不会丢失?

2 回答

  • 5

    只是为了扩展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>
    

    enter image description here

  • 4

    如果我添加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)中定义的字符串 .

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

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

    更多你可以参考AssemblyInfoSupported languages .

相关问题