Xamarin android 应用程序 - 将设备语言更改为 "he-IL" 不会设置 UICulture

Xamarin android App - Changing device language to "he-IL" does not set UICulture

我有一个 Xamarin 表单 (v5.0.0.1558pre3) android 2019 年 Visual Studio 申请 我希望我的应用程序支持不同的语言,因此我执行了以下操作:

  1. 我已经为默认语言资源创建了 AppResources.resx,并且 AppResources.he-IL.resx 只为我的希伯来语创建了一个 resx 文件,如下所示:

  1. 我已将设备上的语言设置为希伯来语。

  2. 然后我将所有字符串设置为使用资源:

    Text="{x:Static resources:AppResources.MonthlyUsage}"

当我启动应用程序时,它仍然加载默认的 AppResources.resx 值。

其他语言(如 fr-FR)正在设置中。

我认为 Android 您需要像这样检查当前设置的 Android 语言环境:

var locale = Java.Util.Locale.Default;

Xamarin 论坛上有一个帖子描述了类似的问题:https://forums.xamarin.com/discussion/74484/app-crashes-when-language-set-to-hebrew

您似乎还必须将 _ 替换为 -,而且 iw_IL 似乎也需要更改为 he_IL

您必须在启动时检测到这一点并相应地调整 CurrentUICulture。