【问题标题】:UWP: Xamarin Forms app always fetches en-USUWP:Xamarin Forms 应用程序始终获取 en-US
【发布时间】:2018-09-01 03:06:54
【问题描述】:
虽然我已将 显示和输入语言 更改为我拥有 RESX 文件的其他语言,但我总是通过以下方法获得 en-US:
public System.Globalization.CultureInfo GetCurrentCultureInfo()
{
return new System.Globalization.CultureInfo(
Windows.System.UserProfile.GlobalizationPreferences.Languages[0].ToString());
}
我应该试试别的吗?
【问题讨论】:
标签:
xamarin
xamarin.forms
uwp
【解决方案1】:
确保将新语言设置为默认语言:
接下来,有一个问题 - UWP 应用程序默认使用 RESW 文件而不是 RESX,这本身没有问题,因为仍然支持 RESX,但是根据项目中包含的可用 RESW 文件分析支持的语言.
您有两种解决方案:
添加自定义 resw 文件
在 UWP 项目中创建一个文件夹 Strings,并在其中为您要支持的语言创建文件夹 - 例如 en-US、pt-BR 等。
接下来在每个文件夹中添加一个Resources.resw 文件,方法是右键单击文件夹,选择添加、新建项目...并在列表中选择Resources File (.resw) .
这应该足以让 UWP 拾取声明的语言并生成特定于语言的资源。
修改Package.appmanifest
这个解决方案有点糟糕,因为它删除了自动语言检测,并且您必须确保记住每次支持新语言时都要修改清单。右键单击Package.appmanifest 文件并找到Resources 元素:
<Resources>
<Resource Language="x-generate"/>
</Resources>
您可以将其替换为您支持的语言列表。第一个应该是您的默认语言:
<Resources>
<Resource Language="EN-US" />
<Resource Language="JA-JP" />
<Resource Language="FR-FR" />
</Resources>