Приложение Xamarin для Android — изменение языка устройства на «he-IL» не устанавливает пользовательский интерфейс

#android #xaml #xamarin #localization

#Android #xaml #xamarin #локализация

Вопрос:

У меня есть приложение Xamarin forms (v5.0.0.1558pre3) для Android в Visual Studio 2019. Я хочу, чтобы мое приложение поддерживало разные языки, поэтому я сделал следующее:

  1. Я создал AppResources.resx для языковых ресурсов по умолчанию и AppResources.he-IL.resx, используя только файл resx для моего языка иврит, например:

введите описание изображения здесь

  1. Я установил язык на устройстве на иврит.

  2. Затем я устанавливаю все строки для использования ресурсов:

    Text=»{x:Статические ресурсы: ресурсы приложения.Ежемесячное использование}»

Когда я запускаю приложение, оно по-прежнему загружает значения AppResources.resx по умолчанию.

введите описание изображения здесь

Другие языки (например, fr-FR) устанавливаются просто отлично.

Ответ №1:

Я думаю, что на Android вам нужно будет проверить текущую установленную локаль Android следующим образом:

 var locale = Java.Util.Locale.Defau<
  

На форумах Xamarin есть ветка, описывающая аналогичную проблему: https://forums.xamarin.com/discussion/74484/app-crashes-when-language-set-to-hebrew

Похоже, вам также придется заменить _ на - , а также, похоже iw_IL , необходимо изменить на he_IL .

Вам нужно будет обнаружить это при запуске и соответствующим образом настроить CurrentUICulture.

Комментарии:

1. Отлично! Спасибо, именно то, что мне было нужно. Работает как шарм. Итак, чтобы уточнить, замена _ на — и изменение iw_IL на he-IL необходимо выполнить в проекте Android. Я сделал это в MainActivity onCreate.