UWP:Xamarin Forms应用程序始终提取en-US

时间:2018-03-22 15:34:55

标签: xamarin xamarin.forms uwp

虽然我已将显示和输入语言更改为我有RESX文件的其他语言,但我总是得到以下方法的en-US:

 public System.Globalization.CultureInfo GetCurrentCultureInfo()
    {
        return new System.Globalization.CultureInfo(
            Windows.System.UserProfile.GlobalizationPreferences.Languages[0].ToString());
    }

我应该尝试别的吗?

1 个答案:

答案 0 :(得分:4)

确保将新语言设置为默认语言:

enter image description here

接下来,有一个问题 - UWP应用程序默认使用RESW文件而不是RESX本身不是问题,因为仍然支持RESX,但是根据项目中包含的可用RESW文件分析支持的语言

您有两种解决方案:

添加自定义resw个文件

在UWP项目中创建文件夹Strings,在内部创建您要支持的语言的文件夹 - 例如en-USpt-BR等。

接下来在每个文件夹中添加Resources.resw文件,方法是右键单击文件夹,选择添加新项目... 并选择{{1}在列表中。

这足以让UWP接收声明的语言并生成特定于语言的资源。

修改Resources File (.resw)

此解决方案有点糟糕,因为它删除了自动语言检测,您必须确保每次支持新语言时都要记住修改清单。右键单击Package.appmanifest文件,找到Package.appmanifest元素:

Resources

您可以将其替换为您支持的语言列表。第一个应该是您的默认语言:

<Resources>
  <Resource Language="x-generate"/>
</Resources>