我制作了一个包含2个字符串文件的应用程序。 1.字符串值 2. values-kn里面的strings.xml
我的用户选择卡纳达语时要翻译的代码如下:
Locale locale = new Locale(language);
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext()
.getResources()
.updateConfiguration(config, getBaseContext()
.getResources()
.getDisplayMetrics());
当我进行调试版本或发布版本并在不同的Android手机上运行时,此代码可以正常工作。 但是,当我将应用程序捆绑包上传到Play商店时,它不会更新该版本中的语言。我还在Play商店中添加了用于kn-in的翻译,但仍然无法将应用中的文字翻译为卡纳达语。
有人可以解释一下我在这里做错了吗,还是我错过了什么?这个问题一直困扰着我。
答案 0 :(得分:2)
基本上,我的构建存在的问题是,我正在尝试新的发行捆绑包功能,并将其上传到Play商店。
因此,如果您在发布时使用最新的App Bundle工具,则该工具会在安装时根据用户的电话设置删除本地化文件。
我得到了一个非常有用的tutorial,它可以教您如何即时更改应用程序语言,以及如何在其注释部分中解决我的问题所在。
要解决我的问题,我要做的只是:
将其放在android标签内的app文件夹内的build.gradle文件中。
android {
//...
//... removed for brevity
bundle {
language {
enableSplit = false
}
}
}
希望它可以帮助一些可能遇到此问题的人。干杯!