Страницы

Поиск по вопросам

суббота, 11 января 2020 г.

Android: ручная смена языка интерфейса на нестандартный

#android #android_sdk


Как лучше реализовать смену языка в при разработке приложений под Android, если это
какие-нибудь нестандартные языки (например, диалекты китайского или устаревший русский)?
Такие языки в принципе не логично настраивать автоматически, потому меня в этом вопросе
интересуют две вещи:


Как правильно в данном случае (т. е. ручная смена языка без локали) создать res-файл
с дополнительным языком? Наверняка не так же, как обычно.
Как лучше активировать этот язык через приложение? Понятно, что надо будет создать
соответствующий пункт в настройках, но каком принципе следует создать метод, сменяющий
язык интерфейса?

    


Ответы

Ответ 1



Вы можете создавать свои собственные локали. И работать с ними как со стандартными, как в плане ресурсов так и кода. Например создадим локаль "ru_MY". Пример переключения локалей есть на кртинке. но лучше приведу его кодом // set your locale try { Constructor constructor = Locale.class.getConstructor(String.class, String.class); constructor.setAccessible(true); Locale locale = constructor.newInstance("ru", "MY"); // <-- you locale (for example ru_MY) Locale.setDefault(locale); Configuration config = getBaseContext().getResources().getConfiguration(); config.locale = locale; getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics()); } catch (Throwable e) { e.printStackTrace(); } PS не забуде что диалект и страна разграничиваются буквой "r" values-ru-rMY

Комментариев нет:

Отправить комментарий