Некоторые строки не переводятся при смене языка системы без перезапуска приложения
У меня проблема с тем, что если я открою свое приложение для Android, а затем зайду в системные настройки, чтобы изменить язык, а затем снова открою приложение, некоторые строки в приложении не будут переведены, если приложение не будет принудительно завершено и перезапущено. Есть идеи, почему это происходит? У меня нет android:configChanges
установлен в "locale"
где-нибудь в моем AndroidManifest
Так значит ли это, что все действия должны быть возобновлены самостоятельно?
2 ответа
Наконец-то разобрался с проблемой. Строки, которые не переводились, заполнялись в статическом классе. Таким образом, поскольку этот класс создавался только один раз, строки не были снова заполнены правильными переводами.
У меня также была эта проблема. Я использовал приведенный ниже код, который был опубликован в ответе Stackru, а затем он изменил язык без обновления действия
public void setLocale(String lang) {
myLocale = new Locale(lang);
Resources res = getResources();
DisplayMetrics dm = res.getDisplayMetrics();
Configuration conf = res.getConfiguration();
conf.locale = myLocale;
res.updateConfiguration(conf, dm);
onConfigurationChanged(conf);
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
// refresh your views here
lblLang.setText(R.string.langselection);
super.onConfigurationChanged(newConfig);
}
Я надеюсь, что это поможет вам.......