Вы можете попробовать это:
Изменить:
public void changeLanguage(String language) {
locale = new Locale(language);
saveLocale(language);
Locale.setDefault(locale);
conf.locale = locale;
getBaseContext().getResources().updateConfiguration(conf, null);
updateText();
}
Сохранить:
public void saveLocale(String language) {
SharedPreferences sharedPreferences = getSharedPreferences("com.example.myapp.PREFERENCES", Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("USER_LANGUAGE", language);
editor.commit();
}
Обновить:
private void updateText() {
btn_chat.setText(R.string.live_chat);
}
Загружать:
public void LoadLanguage(){
SharedPreferences shp = getSharedPreferences(
"com.example.myapp.PREFERENCES",Context.MODE_PRIVATE);
String language = shp.getString("USER_LANGUAGE","");
Locale locale = new Locale(language);
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getResources().updateConfiguration(config, getResources().getDisplayMetrics());
}
В MainActivity вы можете проверить язык по умолчанию, который использует приложение:
language = getResources().getString(R.string.lang);
Затем, если язык является языком, который вы хотите проверить с помощью инструкции, вы должны выполнить функцию updateText()
:
if (language.equals("zh")) {
btn_lang.setText(R.string.someName);
updateText();
}
Не забудьте выполнить LoadLanguage()
в MainActivity, чтобы загрузить сохраненный пользователем язык.
person
Julfikar
schedule
15.12.2016