Как восстановить стандартную локаль приложения Android

У меня есть это приложение для Android, которое локализовано на нескольких языках. Если соответствующая строка для локали устройства существует, приложение автоматически отображает ее. Все идет нормально.

Затем я хочу разрешить пользователям приложения переключаться на один из языков, которые я предоставил. Я могу сделать это, переопределив языковой стандарт по умолчанию. Здесь нет проблем.

Вопрос здесь: есть ли способ предоставить параметр «по умолчанию» в списке языков, который позволит пользователям восстановить стандартную автоматическую локаль? Рассмотрим следующий сценарий:
1. Язык устройства установлен на немецкий. Приложение отображает все на немецком языке.
2. Пользователь хочет, чтобы приложение находилось на французском языке, поэтому они меняют язык внутри приложения, и приложение превращает французский в результат.
3. Тот же пользователь изменяет локаль устройства на испанский. Приложение по-прежнему остается французским.
4. Они выбирают настройку «По умолчанию». Приложение изменяется на испанский и продолжает меняться при изменении локали.

Если это не выполнимо автоматически, то есть ли способ получить локальную модель устройства, чтобы я мог установить для нее свое приложение, если выбрана моя опция «по умолчанию»?

Я решил эту проблему, сохранив существующий параметр при первом запуске приложения (до внесения каких-либо изменений в локаль по умолчанию). В блоке, который запускается только при первом запуске приложения, я вызываю:

m_preferences.edit().putString( MyConstants.PREFERENCE_SYSTEM_LANGUAGE, getResources().getConfiguration().locale.getLanguage() ).commit(); 

Позже, когда мне нужно его получить:

 languageToLoad = m_preferences.getString( MyConstants.PREFERENCE_SYSTEM_LANGUAGE, MyConstants.LANGUAGE_DEFAULT); 

При изменении языка я сохраняю его в другом порядке и обрабатываю обновления для представления.

Редактирование : после того, как я уже несколько раз выкалывал, я нашел настройки системы. Я переключился на это, а не на код выше.

 Resources.getSystem().getConfiguration().locale.getLanguage(); 
 Locale defaultLocale = Locale.getDefault(); 

Редактировать: Извините, я просто понял, что это на самом деле не отвечает на ваш вопрос, так как вы переопределяете значение по умолчанию, чтобы произвести изменения.

Intereting Posts
Как показывать и скрывать предпочтения на Android динамически? Камера Zxing в портретном режиме на Android Дифференциальные правила использования getBaseContext для Android, getApplicationContext или использования «этого» Как настроить инъекцию зависимостей DAGGER с нуля в проекте Android? Как переносить Android-приложение на платформу iOS? Получение контекста MainActivity в классе CustomView Настройка цвета каждого разделителя на каждый элемент в виде списка Whatsapp как анимация изображения профиля Android-рендеринг в формате PDF Использование AsyncTask Невозможно сохранить emoji в базе данных ADB бросает SecurityException при запуске службы после обновления системы до Nexus 7: «Caller uid = 2000 не имеет права связываться с пользователем = -2» Как просмотреть пользовательскую программную клавиатуру во время нажатия на EditText в android? Способ публикации с использованием неработающего волейбола Написание приложения радиостанции для мобильных телефонов – это Javascript / HTML / CSS, или нам нужно идти на родной язык?