0

我正在尝试本地化我的 UWP 应用程序,并且在我的电脑中调试时一切都运行良好,但是当我创建应用程序包时,我可以将它安装在我的 Windows 平板电脑上,它的工作方式有所不同。这就是问题所在。我的清单中有 3 种不同的语言声明如下:

  <Resources>
    <Resource Language="x-generate" />
    <Resource Language="pt-br" />
    <Resource Language="en-us" />
    <Resource Language="es-es" />
  </Resources>

在应用程序中,我尝试获取这些语言,以便我可以选择一种在应用程序上进行设置。我试图让他们使用ApplicationLanguages.ManifestLanguagesor ApplicationLanguages.Languages,但它们都不起作用。是的,我试图删除“x-generate”行,仍然没有。我确实在平板电脑上安装了所有语言包,但它仍然没有显示语言。

有没有人遇到过这个问题或类似的问题?

4

2 回答 2

1

我想到了!

这里的东西是安装在我使用的用户中的语言包。我有一个管理员用户和另一个没有管理员权限的用户,所以当我安装我的应用程序包时,我使用普通用户登录但使用管理员权限。

在我的普通用户中,我安装了所有语言包,但在我的管理员用户中,我没有。

显然,在运行安装包的脚本时,它会在运行帐户中找到安装的语言,而不是在登录帐户中。

出于某种原因,我还没有弄清楚,Visual Studio 中的调试工作方式不同。

于 2016-08-08T18:58:42.620 回答
0

答案很简单。不要试图获取对象本身:

 var l = ApplicationLanguages.Languages.ToList();
 var lm = ApplicationLanguages.ManifestLanguages.ToArray(); 
于 2016-08-08T09:26:45.763 回答