Android App Bundle with in-app locale change Android App Bundle with in-app locale change android android

Android App Bundle with in-app locale change


Edit:

The PlayCore API now supports downloading the strings for another language on-demand:https://developer.android.com/guide/playcore/feature-delivery/on-demand#lang_resources

Alternative solution (discouraged):

You can disable the splitting by language by adding the following configuration in your build.gradle

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        }    }}

This latter solution will increase the size of the app.


This is not possible with app bundles: Google Play only downloads resources when the device's selected languages change.

You'll have to use APKs if you want to have an in app language picker.


Details of downloading the language on demand can be found here

https://android-developers.googleblog.com/2019/03/the-latest-android-app-bundle-updates.html

In your app’s build.gradle file:

dependencies {    // This dependency is downloaded from the Google’s Maven repository.    // So, make sure you also include that repository in your project's build.gradle file.    implementation 'com.google.android.play:core:1.10.0'    // For Kotlin users also add the Kotlin extensions library for Play Core:    implementation 'com.google.android.play:core-ktx:1.8.1'    ...}

Get a list of installed languages

val splitInstallManager = SplitInstallManagerFactory.create(context)val langs: Set<String> = splitInstallManager.installedLanguages

Requesting additional languages

val installRequestBuilder = SplitInstallRequest.newBuilder()installRequestBuilder.addLanguage(Locale.forLanguageTag("pl"))splitInstallManager.startInstall(installRequestBuilder.build())

Check above link for full details