Как программно подавить конкретную локаль в приложении Android - PullRequest
1 голос
/ 09 сентября 2011

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

Теперь возникает вопрос о моем желании программно подавить определенные языковые стандарты в приложении, посколькураспространять приложения в разных странах, используя разные каналы, ценовую политику и т. д. (не всегда через Android Market).Поэтому, если приложение предназначено, скажем, для Китая - пользователь не может переключить язык на английский или французский.

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

Есть идеи?

1 Ответ

9 голосов
/ 09 сентября 2011

Используйте этот код ...

    private void callSwitchLang(String langCode) {
    Locale locale = new Locale(langCode);
    Locale.setDefault(locale);
    Configuration config = new Configuration();
    config.locale = locale;
    getBaseContext().getResources().updateConfiguration(config,
            getBaseContext().getResources().getDisplayMetrics()); 
onCreate(null);
}

В этих методах вы передаете выбранный код языка ....

...