Локализовать приложение Android, чтобы я мог переключать локализацию внутри приложения

#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 .