我的Universal-Windows-App存在问题:我正在为用户提供更改应用语言的选项。
对于这个建议,我为每种语言创建了一个“Ressources.resw”文件,我的XAML代码通过x:UID=
部分引用了资源。语言通过primaryLanguageOverride更改
这在我的环境中工作正常。但是,如果我通过Store->Create App Packages
部署应用程序然后尝试在(不同的)Windows-10计算机上加载应用程序,则语言更改无法正确反映。例如,日期格式正在正确更改,但指向资源文件的属性未正确更改。
但是:如果用户安装了相应的Windows-Language-Pack,则该应用程序正常运行。我的猜测是,Windows将检查它将使用系统上安装的语言部署的语言资源文件:
我该如何避免这种情况?
答案 0 :(得分:13)
但是,如果我通过Store->创建App Packages部署应用程序,然后尝试在(不同的)Windows-10计算机上侧载应用程序,则语言更改无法正确反映。
但是:如果用户安装了相应的Windows-Language-Pack,则该应用程序正常运行。我的猜测是,Windows会 检查它将与已安装的部署的语言资源文件 系统上的语言:
如果我将“生成应用套装”设置为“始终”或“,如果需要”,我可以重现此行为正如你所说的那样,只有当用户安装了相应的Windows-Language-Pack时,该应用程序才能正常工作。
之所以如此,是因为如果我们将“生成应用程序包”设置为“始终”或“如果需要”,它将创建应用程序包。这意味着它会将您的应用程序分成不同的部分以优化下载。仅下载与设备相关的部件。例如,如果资产的分辨率不同,则只下载适合该设备的资产。 语言相同,它只会下载与设备语言相关的资源文件。因此,如果您尝试更改语言,它将失败仍然会使用相同的基本语言,因为其他语言未安装。因此,如果您没有安装相应的Windows-Language-Pack,则应用程序将不会显示指向资源文件的该属性的相关语言。
有关详情,请尝试参考this blog。
我该如何避免这种情况?