我已经为我需要的语言添加了 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) { } } });
1 回答
白衣非少年
TA贡献1155条经验 获得超0个赞
在某处找到了解决方案。由于 Android Bundle 问题,该应用未在生产中进行翻译。普通的 apk 工作正常。
在 gradle 文件中添加了以下行,它工作正常。
bundle{
language{
enableSplit = false
}
}
添加回答
举报
0/150
提交
取消