#android #localization
#Android #локализация
Вопрос:
Как мне локализовать приложение, чтобы оно использовало определенную локаль независимо от того, какая локаль установлена на устройстве? Я хочу, чтобы пользователи могли устанавливать язык по своему выбору.
Пока у меня есть подобный код в моем классе приложений:
@Override
public void onCreate()
{
//Set locale
String l = Preferences.getLocale(getApplicationContext());
if (!l.equals(""))
{
Locale locale = new Locale(l);
Locale.setDefault(locale);
Configuration config = getBaseContext().getResources().getConfiguration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(
config, getBaseContext().getResources().getDisplayMetrics());
}
LogData.InsertMessage(getApplicationContext(), "Application started");
}
Проблема, с которой я сталкиваюсь, заключается в том, что кажется, что я отображаюсь в заданном языковом стандарте просто отлично (текстовые просмотры)
Но заголовки меню и тосты будут соответствовать языку по умолчанию.
Есть ли какие-либо 1-2-3 о том, как заставить его работать должным образом? Я использую версию 2.2
Комментарии:
1. Зачем вам это делать? Вы ожидаете, что ваши пользователи настроят свои устройства на один язык, а ваше приложение будет использовать другой?
2. @Noah Только сегодня у нас возникла проблема. Все пользователи в и, но некоторые телефоны, такие как IVO, не разрешают ничего, кроме английского / испанского. Разрешение локализации на уровне приложения действительно помогает этим людям.
Ответ №1:
Хорошо, я понял, почему у меня возникла эта проблема.. Мне нужно было переопределить onConfigurationChanged
в моем классе приложения. Это гораздо более элегантное решение, чем указывать локализацию для каждого Activity
.