Локализация приложения для стран СНГ

221
09 ноября 2018, 22:30

Есть два набора строковых ресурсов: дефолтный (англ) и русский. Необходимо, установить русский язык, если пользователь выберет белорусский, украинский, и.т.д. Сначала узнаю какой язык у пользователя сейчас:

String userLocale = Locale.getDefault().getLanguage();

После чего сравниваю с нужными языками:

if(userLocale.equals("uk")||userLocale.equals("be")||userLocale.equals("kz")) и т.д.

Внутри if'a код, найденный здесь же:

Locale locale = new Locale("ru");
            Locale.setDefault(locale);
            Configuration config = new Configuration();
            config.locale = locale;
            getBaseContext().getResources().
                    updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());

Но при запуске приложения язык не меняется на русский, а остается дефолтным. Что делаю не так?

Answer 1

Вам надо создать в ресурсах папки для нужных языков и поместить туда нужный перевод. Именно из этих папок будут браться строки. Т.е. создайте папки values-ua, values-be, values-kz и поместите туда strings.xml с русским переводом - всё заработает из коробки, ничего программно делать не надо будет.

READ ALSO
Вечная консольная ошибка Error in event handler for runtime.onMessage

Вечная консольная ошибка Error in event handler for runtime.onMessage

Регулярно на сайтах, которые я делаю, вылезает следующая ошибка:

430
Числа, начинающиеся с нуля, в JavaScript

Числа, начинающиеся с нуля, в JavaScript

Набираю в консоли Google Chrome следующий пример (и получаю интересный результат):

246
Ошибка document.getElementByName is not function

Ошибка document.getElementByName is not function

При работе с radiobutton возникла такая ошибка: documentgetElementByName is not function

265
условие на URL JS

условие на URL JS

Есть код, который должен проверить ссылкуЕсли ссылка и текущее положение совпадают , то блок показывается, иначе - нет

229