Я создал многоязычное (английский, русский, узбекский) приложение. Я положил 4 строковых ресурса в 4 папки (values, values-en, values-ru, values-uz) как документы. Когда я меняю конфигурацию ресурсов обновления языка приложения в App Controller, как показано ниже:
Settings.LANGUAGE = prefs.getString(User.LANG, Settings.RUSSIAN);
Locale locale = new Locale(Settings.LANGUAGE);
Locale.setDefault(locale);
Configuration configuration = new Configuration();
configuration.locale = locale;
getBaseContext().getResources().updateConfiguration(configuration,
getBaseContext().getResources().getDisplayMetrics());
После этого приложение перезапускается, вызывая метод контроллера приложения, как показано ниже:
public void reStart() {
Intent i = getBaseContext().getPackageManager()
.getLaunchIntentForPackage(getBaseContext().getPackageName());
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
}
После них хорошо работают почти все девайсы. А вот на Samsung Galaxy S6 (SM-G920F) работает как сумасшедший. Некоторые слова на английском, другие на узбекском и т.д. Итак, как исправить эту ошибку? разве концепции «Поддержки разных языков» не поддерживаются (применимы) ко всем устройствам? Кстати, я проверил, что все ресурсы даны на соответствующих языках (как показано на прикрепленном изображении):