#android #xaml #xamarin #localization
#Android #xaml #xamarin #локализация
Вопрос:
У меня есть приложение Xamarin forms (v5.0.0.1558pre3) для Android в Visual Studio 2019. Я хочу, чтобы мое приложение поддерживало разные языки, поэтому я сделал следующее:
- Я создал AppResources.resx для языковых ресурсов по умолчанию и AppResources.he-IL.resx, используя только файл resx для моего языка иврит, например:
-
Я установил язык на устройстве на иврит.
-
Затем я устанавливаю все строки для использования ресурсов:
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.