В Android/Jetpack Compose некоторые ресурсы String переводятся на другие языки, хотя в приложении определен только один язык. Я рассматриваю случай off
, который я определил в библиотечном модуле:
<string name = "off">Off</string>
Но телефон, настроенный на немецкий язык, покажет «Аус», или на украинский — «Вимкнено».
Я подозреваю, что они взяты из androidx.compose.ui:ui-android:1.5.4
, поскольку Android Studio сообщает мне, что существует «несколько реализаций».
Где DR
— класс R моего библиотечного модуля: import my.library.module.R as DR
Но почему это так? У меня в android.nonTransitiveRClass=true
установлен gradle.properties
. Я ожидал, что будут выбраны только ресурсы моих модулей.
Приложение выглядит довольно странно с парой переведенных случайных строк.
Нет. Он имеет только один файл res/values/strings.xml и не имеет других папок с локализованными значениями.
Возможно, таблица ресурсов библиотеки androidx.compose.ui:ui-android
все еще объединяется с таблицей ресурсов вашего приложения, и, поскольку в вашем приложении нет переводов, оно берется из доступных строк.
Если вы уже знаете о переводимых строках, вы можете переименовать их в уникальное имя ресурса.
<string name = "appname_off">Off</string>
или Вы можете добавить следующий код в файл build.gradle вашего приложения:
android {
...
defaultConfig {
resourceConfigurations += "en"
}
}
Это заставит систему сборки Android использовать для вашего приложения только английский язык, включая стороннюю библиотеку.
Можете ли вы попробовать заставить использовать в приложении только английский язык. <?xml version = "1.0"coding = "utf-8"?> <locale-config xmlns:android = "Schemas.android.com/apk/res/android"> <locale android:name = "en " /> </locale-config> Затем в файл build.gradle вашего приложения добавьте следующий код: android { ... localeConfig "xml/locale_config" }
Я думаю, нет необходимости переименовывать чертежи только со строками, поскольку в приложении на данный момент отсутствуют переводы.
Обновил ответ, спасибо!
Есть ли у вашего
my.library.module
несколько файлов строковых ресурсов для разных языков?