在android app bundle上处理app中的动态语言更改

时间:2018-06-27 03:34:04

标签: android localization apk

我使用了最新的android包装格式捆绑包,并将我的应用程序发送到Beta渠道,捆绑包减少了应用程序大小的60%左右,真是太棒了,

我的应用程序支持英语和阿拉伯语(可以在应用程序中即时切换)

现在的问题是:AFAIK基本apk将仅在应用程序下载期间具有用户语言的资源(如果在下载时,如果语言是英语,则只会对string-en.xml进行废弃)

那么我该如何处理用户在应用内切换语言的情况..

请让我知道..

3 个答案:

答案 0 :(得分:7)

AFAIK可以通过使用捆绑软件块来控制您希望应用捆绑软件支持的配置APK类型。

基于documentation

'test' in sys.argv

答案 1 :(得分:3)

目前,我只发现通过在系统设置中更改设备语言,假设您已将该语言的资源包含在应用包中,则您的应用会自动从Play商店下载其他语言APK。仍在尝试寻找是否可以通过我的应用程序中的PlayCore库手动提交对其他语言的请求...

答案 2 :(得分:0)

使用Play Core库1.4.0版时,您可以请求Play商店按需安装新语言配置的资源,然后立即开始使用它。

// Creates a request to download and install additional language resources.
SplitInstallRequest request =
    SplitInstallRequest.newBuilder()
        // Uses the addLanguage() method to include French language resources in the request.
        // Note that country codes are ignored. That is, if your app
        // includes resources for “fr-FR” and “fr-CA”, resources for both
        // country codes are downloaded when requesting resources for "fr".
        .addLanguage(Locale.forLanguageTag("fr"))
        .build();

// Submits the request to install the additional language resources.
splitInstallManager.startInstall(request);

有关更多信息: https://developer.android.com/guide/app-bundle/playcore#lang_resources