Windows Phone 8.1(WinRT)本地化问题(MakePRI)

时间:2015-02-17 22:15:32

标签: c# localization windows-runtime windows-phone-8.1

我有一个问题,重新定义WinRT-Apps的本地化。 据我所知,系统的工作原理如下:

字符串||资源

  • 解DE
    • Resources.resw
  • 的en-US
    • Resources.resw
  • 等。
    • Resources.resw

到目前为止,这个文件夹结构已在我的项目中实现。 在我的 Package.appxmanifest 中,“默认语言”设置为“en-US”,所以一切都应该从我的观点来看,如果语言不受支持,它应该回归到“en-US”,因为它已经设置在那里。 但是如果我编译这些东西,在VS的Output-Box中我会收到MakePRI的警告

2>MakePRI : warning 0xdef01051: No default or neutral resource given for 'Resources/String'. The application may throw an exception for certain user configurations when retrieving the resources.

我到目前为止搜索过,发现只有与MS广告SDK相关的内容,我在项目中没有使用,所以问题不应该存在。

为什么MakePRI会给我这个消息,我错了?

2 个答案:

答案 0 :(得分:2)

仅供记录:构建Windows 8.1 Store Universal App(Windows + Windows Phone)时,我收到了同样的警告。我的项目包含一个带有图像的文件夹,用作地图上的精确标记。文件夹名称是

  • 资产/标记/是/ foo.png
  • 资产/标记/是/ bar.png
  • 资产/标记/是/ baz.png
  • ...
  • 资产/标记/没有/ foo.png
  • 资产/标记/没有/ bar.png
  • 资产/标记/没有/ baz.png
  • ...

是/否子文件夹中的分隔是特定于应用程序的。我的程序使用标记来表示地图上是否存在某些东西。

对于Assets / marker下的每个元素,我得到了两次下面的警告 - 一个用于Windows项目,另一个用于Windows Phone项目。

  

MakePRI:警告0xdef01051:没有为...提供默认或中性资源

根据MakerPRI documentation资源索引系统尝试识别文件夹和文件名中的语言标识符。我认为警告的原因是文件夹名称" no"。 MakerPRI将其解释为" Norwegian"并且理所当然地抱怨我的项目包含以一种语言提供但不适用于所有语言的资源。

我更改了文件夹名称" no"别的东西,警告都没了。因此,底线应该是要小心文件名和文件夹名称,这些名称和文件夹名称可能被误解为语言标签。这是list of all available language tags

答案 1 :(得分:1)

此错误表示您有一个名为" String"的本地化字符串。在您的默认值" en-US \ Resources.resw"中未定义。文件。 如果你查看你的" de-DE \ Resources.resw"文件你应该找到条目。您必须将其报告给默认文件,或者如果不需要则将其删除。

非默认本地化文件中存在的所有字符串都必须在默认语言文件中具有默认值。