Handle dynamic language change within the app on android app bundle

With the Play Core library version 1.4.0, you can request the Play Store to install resources for a new language configuration on demand and immediately start using it.

// 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);

For more informations: https://developer.android.com/guide/app-bundle/playcore#lang_resources


AFAIK you can do it by using the bundle block to control which types of configuration APKs you want your app bundle to support.

Based on the documentation:

android {
    
    ...
    bundle {
        language {
            // Specifies that the app bundle should not support
            // configuration APKs for language resources. These
            // resources are instead packaged with each base and
            // dynamic feature APK.
            enableSplit = false
        }
    }
}

Currently I only find that by changing the device language in the system settings, your app will automatically download the additional language APK from Play Store given that you have included that language's resource in your app bundle. Still trying to find if I can manually submit a request for additional language through PlayCore Library within my app...