我的应用程序支持 6种语言。我使用以下功能在它们之间切换。为了创建它们,我使用了android转换器。当我在多台设备上测试我的应用程序时,它可以很好地工作,但是当我将其部署在play store
(作为捆绑包)上时,其中只有2种(英语和希腊语)其他语言< strong>(俄语,意大利语,法国,德语)无效。即使我将设备语言更改为该特定语言,它也不会更改。有什么想法吗?
---编辑---
我发现,安装该应用程序后,它并不包含所有字符串文件。如果指定语言,则它将下载并显示它们。从应用商店中安装该应用以包含所有string.xml
文件后,我该如何强制下载特定的字符串甚至更好?
// My locales
tempLangLocale = new String[]{"default", "eng", "el","it","fr","de","ru"};
// Language Change functions
public void changelang(String lang) {
myLocale = new Locale(lang);
SharedPreferences prefs = getSharedPreferences("CommonPrefs", Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putString("Language", lang);
editor.commit();
Locale.setDefault(myLocale);
android.content.res.Configuration config = new android.content.res.Configuration();
config.locale = myLocale;
getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
}
@Override
public void onConfigurationChanged(android.content.res.Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (myLocale != null) {
newConfig.locale = myLocale;
Locale.setDefault(myLocale);
getBaseContext().getResources().updateConfiguration(newConfig, getBaseContext().getResources().getDisplayMetrics());
}
}
答案 0 :(得分:0)
所以我找到了解决方法。如果我创建一个apk而不是捆绑应用。显然,捆绑软件应用程序并不包含所有语言文件,而是根据设备区域设置下载它们。