Программно меняю язык с английского на арабский с помощью этой функции:
private void setLocale(String lang) {
Locale myLocale = new Locale(lang);
Resources res = getContext().getResources();
DisplayMetrics dm = res.getDisplayMetrics();
Configuration conf = res.getConfiguration();
conf.locale = myLocale;
conf.setLocale(new Locale(lang));
Locale.setDefault(myLocale);
res.updateConfiguration(conf, dm);
Intent refresh = new Intent(getContext(), MainActivity.class);
getActivity().finish();
startActivity(refresh);
}
Язык меняется, однако при использовании
Locale.getDefault().getLanguage();
или же
Resources.getSystem().getConfiguration().locale.getLanguage();
Я все еще получаю английский (en) вместо ожидаемого значения ar, хотя отображаемый язык - арабский.
Есть идеи, почему он все еще возвращает en?