Я разрабатываю приложение, которое позволяет пользователю изменять язык в настройках приложения. Но пока некоторые страны имеют 2 или более языков, а некоторые языки используются более чем в одной стране, мне нужно использовать формат xx-XX. Например, пользователи из Бельгии могут выбрать французский или голландский язык.android - Измените язык и страну программно
Я использую следующий фрагмент кода, чтобы изменить язык:
protected void setLocale() {
Resources res = getResources();
DisplayMetrics dm = res.getDisplayMetrics();
Configuration conf = res.getConfiguration();
Locale locale = new Locale(dataManager.getLocale().toLowerCase());
Locale.setDefault(locale);
conf.locale = locale;
res.updateConfiguration(conf, dm);
}
dataManager.getLocale()
возвращает String
как "FR-BE" или "п-BE".
У меня есть следующие файлы ресурсы:
values-fr/strings.xml
values-fr-rBE/strings.xml
values-nl/strings.xml
values-nl-rBE/strings.xml
Но даже если я установить языковой стандарт nl-BE
, он использует строку из values-nl
каталога, но не из values-nl-rBE
.
Итак, мой вопрос: «Как я могу сделать свое приложение для использования ресурсов для определенного языка и региона во время выполнения?»
вам известно, что приложение локаль выбран автоматически в зависимости от устройства языка. –
@RahulTiwari Я знаю, но каждый мой актив вызывает метод setLocale() 'в' onResume() '. И он работает, он использует строку для правильного языка, но не использует информацию о регионе. –