Size: a a a

Android Developers

2020 March 15

DK

Denis K in Android Developers
Коллеги, подскажите, как лечить заразу: меняю locale у приложения, locale отличен от системного. Использую либу Lingver. локаль меняется при старте приложения, так же внутри библиотеки с пом. registerActivityLifecycleCallbacks для всех создаваемых activity меняется.
но только вот заскок: при первом запуске приложения язык меняется не для всех ресурсов... например менюшки остаются на английском.
помогает обычно пересоздание activity. ЧЯДНТ?
глюк замечен на Android 10, для сравнения тот же код на 6м андроиде отработывает правильно.
источник

VN

Viktor Noskin in Android Developers
k1ceargy
так оно и есть, но консоль дико неудобная
Перенаправь в файл
‘adb logcat > log.txt’
источник

k

k1ceargy in Android Developers
Viktor Noskin
Перенаправь в файл
‘adb logcat > log.txt’
Неудобно, говорю же
источник

k

k1ceargy in Android Developers
У меня нет процесса, логи всей системы нужны
источник

k

k1ceargy in Android Developers
И так постоянно в консоль неудобно
источник

IS

Ivan Sablin in Android Developers
Denis K
Коллеги, подскажите, как лечить заразу: меняю locale у приложения, locale отличен от системного. Использую либу Lingver. локаль меняется при старте приложения, так же внутри библиотеки с пом. registerActivityLifecycleCallbacks для всех создаваемых activity меняется.
но только вот заскок: при первом запуске приложения язык меняется не для всех ресурсов... например менюшки остаются на английском.
помогает обычно пересоздание activity. ЧЯДНТ?
глюк замечен на Android 10, для сравнения тот же код на 6м андроиде отработывает правильно.
значит при старте активити context все еще со старой локалью
источник

DK

Denis K in Android Developers
Ivan Sablin
значит при старте активити context все еще со старой локалью
так если бы было так, то язык бы вообще не переключился... а тут только у меню системная локаль остается.
или я ошибаюсь?
источник

IS

Ivan Sablin in Android Developers
у меню имеешь ввиду которая например при выделении текста?
источник

DK

Denis K in Android Developers
Ivan Sablin
у меню имеешь ввиду которая например при выделении текста?
нет, любые меню в приложении, через inflateMenu что инфлейтятся
источник

IS

Ivan Sablin in Android Developers
это уже после перезапуска приложения?
источник

DK

Denis K in Android Developers
и еще alertDialog
источник

DK

Denis K in Android Developers
Ivan Sablin
это уже после перезапуска приложения?
после какого перезапуска?
алгоритм такой: в наследнике Application в onCreate из настроек читается локаль, заданная пользователем в настройках приложения, вызывается Lingver.init с нужной новой локалью.
язык в главной активити при этом получается нужный, за исключением пунктов меню и языка в некоторых всех AlertDialog 'ах
источник

DK

Denis K in Android Developers
если главное активити пересоздается, например по выходу по back из приложения и повторном входе, то все норм везде с нужным языком
источник

IS

Ivan Sablin in Android Developers
ну что бы у тебя в активити была нужная локаль, его нужно пересоздать в любом случае для того, чтобы вызвать attachBaseContext
источник

IS

Ivan Sablin in Android Developers
я много времени сам потратил, чтобы нормально работала смена языка. И как понял на практике, без переопределения этого метода не обойтись
источник

IS

Ivan Sablin in Android Developers
у меня каждая активити стартует всегда с этого метода, что подгружается нужная локаль
источник

DK

Denis K in Android Developers
Ivan Sablin
ну что бы у тебя в активити была нужная локаль, его нужно пересоздать в любом случае для того, чтобы вызвать attachBaseContext
ну так она нужная... часть ресурсов на нужной локали сразу... часть, в частности menuInflater с которыми работает, почему-то с дефолтной локалью остается
источник

DK

Denis K in Android Developers
Ivan Sablin
у меня каждая активити стартует всегда с этого метода, что подгружается нужная локаль
как я писал выше, Lingver вешает колбэк на уровне приложения и обновляет локаль в момент создания любого активити в приложении...
для всех других активити, кроме главной, новая локаль применяется полностью, в т.ч. для меню и вызываемых диалогов.
источник

ДР

Дмитрий Рубцов 🇷🇺🔥... in Android Developers
У меня одного отвалился DataBinding на студии 3.6.1? Кто нибудь знает как фиксить?
источник

SF

Silver Fox in Android Developers
Пацаны, а чё пишет что произойдет шифрование если я удалю Magisk?? Дата зашифруетсы и придется заново все шить?
источник