Обработка динамического изменения языка в приложении в комплекте приложений для Android - PullRequest
0 голосов
/ 27 июня 2018

Я использовал новейший пакет форматов упаковки Android и отправил свое приложение на бета-канал, пакеты уменьшили ~ 60% размера приложения, что было действительно здорово,

мое приложение поддерживает английский и арабский языки (можно переключать в приложении на лету)

теперь проблема: AFAIK базовый apk будет иметь ресурсы только для языка пользователя во время загрузки приложения (если во время загрузки, если язык был english.only string-en.xml загружается)

так как мне справиться с ситуацией, когда пользователь переключает язык в приложении ...

пожалуйста, дайте мне знать ..

Ответы [ 3 ]

0 голосов
/ 20 сентября 2018

В настоящее время я нахожу только то, что, изменяя язык устройства в настройках системы, ваше приложение автоматически загружает дополнительный язык APK из Play Store, если вы включили ресурс этого языка в свой пакет приложений. Все еще пытаюсь найти, могу ли я вручную отправить запрос на дополнительный язык через PlayCore Library в моем приложении ...

0 голосов
/ 28 марта 2019

В библиотеке Play Core версии 1.4.0 вы можете запросить в Play Store установить ресурсы для новой языковой конфигурации по требованию и сразу же начать ее использовать.

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

0 голосов
/ 27 июня 2018

AFAIK вы можете сделать это, используя блок комплекта, чтобы контролировать, какие типы конфигурационных APK вы хотите, чтобы ваш комплект приложений поддерживал.

На основании документации :

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
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...