我已经为我需要的语言添加了 strings.xml 文件。我使用警报对话框来切换我的 android 应用程序的语言。
当我通过 Android Studio 在我的手机或我的虚拟设备上运行他的应用程序时,语言更改工作没有任何问题,但是当我打包应用程序并将其上传到 Play 商店时,它们不起作用。
从 playstore 下载应用程序时,只有 timepicker 被翻译成其他语言,没有其他文本。
我编写了一个 setLocale 函数来更改从 OnCreate 和语言选择器函数调用的应用程序的语言。
我将语言存储在共享首选项中,以便在关闭应用程序时保留该选项。
OnCreate(){
SharedPreferences pref = MainActivity.this.getSharedPreferences("languageSelectionMode", MODE_PRIVATE);
languagetoLoad = pref.getString("languageSelectionNameTemp","en");}
setLocale(languagetoLoad);
这是 setLocale 函数
public void setLocale(String lang) {
if (!"".equals(lang) && !config.locale.getLanguage().equals(lang)) {
Locale locale = new Locale(lang);
Locale.setDefault(locale);
Configuration conf = new Configuration(config);
conf.locale = locale;
getBaseContext().getResources().updateConfiguration(conf, getBaseContext().getResources().getDisplayMetrics());
SharedPreferences pref = MainActivity.this.getSharedPreferences("languageSelectionMode", MODE_PRIVATE);
SharedPreferences.Editor editor = pref.edit();
editor.putString("languageSelectionNameTemp",lang);
editor.apply();
finish();
overridePendingTransition(0, 0);
startActivity(getIntent());
overridePendingTransition(0, 0);
}
我更改语言的功能。
SharedPreferences pref = MainActivity.this.getSharedPreferences("languageSelectionMode", MODE_PRIVATE);
int languageLoaded = pref.getInt("languageSelectionId",0);
//Convert ListArray to Array ..... profileNames.toArray()
builder.setSingleChoiceItems(languageArray, languageLoaded, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
}
});
白衣非少年
相关分类