【问题标题】: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-USpt-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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-23
      • 2019-09-21
      • 2013-12-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多