谷歌应用商店上的实时翻译应用无法翻译我的文本。

6

我制作了一个应用程序,其中包含2个字符串文件。 1. 在values文件夹中的strings.xml 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());

当我制作调试版本或发布版本并在不同的安卓手机上运行时,这段代码可以正常工作。

但是当我将应用程序包上传到Play商店时,它无法更新我的语言版本。我还在Play商店中添加了kn-in的翻译,但仍然无法将应用程序中的文本翻译成卡纳达语。

请问有人能解释我做错了什么或者我遗漏了什么吗?这个问题一直困扰着我。

2个回答

13

我的构建问题基本上是,我正在尝试使用新的发布捆绑功能并将其上传到Play商店。

因此,如果您在发布时使用最新的App Bundle工具,则会根据用户手机设置删除本地化文件,当它被安装时。

我找到了这个非常有用的教程,它教你如何在应用程序中动态更改语言,并且在评论部分中找到了解决我的问题的答案。

要解决我的问题,我所需要做的就是:

将此代码放入位于应用程序文件夹内的build.gradle文件中的android标签中。

android {
//...
//... removed for brevity
     bundle {
        language {
           enableSplit = false
        }
    }
}

希望这能帮助到可能遇到这个问题的人,祝福!


0

根据Google I/O 2018,Google Play将负责实时下载所选语言。

在极少数情况下,如果用户切换到我们之前不知道的新语言,Play会动态地向他们的设备提供相关的分割文件。(https://youtu.be/0raqVydJmNE?t=13m9s)

根据接受的答案,我们可以将其设置为false,但在实际情况下并不需要。用户很少更改语言,应用程序包通过拆分资源来帮助我们最小化应用程序大小。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接