В настоящее время я работаю над приложением для Android, которое должно поддерживать языки английский и арабский, и я использую этот код для переключения с одного языка на другой.
String languageToLoad; // your language
if (languageSwitch.isChecked()) {
languageToLoad = "ar";//arabic
} else {
languageToLoad = "en";//english
}
Locale locale = new Locale(languageToLoad);
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
// store it in the cache for any further use
getBaseContext().getResources().updateConfiguration(config,
getBaseContext().getResources().getDisplayMetrics());
SharedPreferencesUtil.putString(this, "language", languageToLoad);
Работало нормально, я сделал 2 папки макетов, нормальную и layout-ar
. Он работал правильно, но иногда он запутался, и вместо арабского он показывает макет на английском, а приложение продолжает работать только в английском режиме.