android - 具有不同默认语言资源字符串的产品 flavor

标签 android gradle android-gradle-plugin

我有一个具有两种产品口味的应用程序。一个(INT)以德语和英语提供,另一个(INT)仅以德语(GER)提供,但德语中的字符串与第一个有所不同。

目前,我的设置是:

INT在默认的strings.xml中使用英语,在values-de文件夹中使用德语。
GER的两个文件仅填充了与INT不同的德语字符串(将它们放在默认文件夹中是不够的,因为在德语设备上,将使用INT的-de字符串)。

我遇到的问题是,当设备设置为德语以外的其他语言时,INT的默认字符串用于GER中没有区别的字符串,因此不在其自己的默认资源文件中使用。所以我在GER-App中混合了德语和英语字符串。
我希望你明白我的意思;)

我了解为什么gradle会如此,但是我希望有一个更好的解决方案,而不是手动将INT-App中的所有字符串也保留在GER-App的默认字符串中...?

告诉resConfigs只使用德语是没有帮助的。我需要告诉Gradle总是先检查德语字符串资源是否有这种味道。
我看到了在构建过程中将字符串从一个资源文件复制到另一个资源的建议,这可能实际上对我有用,但是随着时间的推移,我可能会添加更多的buildFlavors,而我实际上不想为每个构建都复制资源文件。 。

有什么办法可以实现?

非常感谢!
下午

最佳答案

在德语中,不会将德语字符串放在strings.xml资源文件中,而是将英语字符串放入。

这样,即使用户使用该应用程序的德语风格,他们也将根据其设备语言看到正确的字符串。

关于android - 具有不同默认语言资源字符串的产品 flavor ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49067482/

相关文章:

java - 如何在 IntelliJ 中附加 gradle-api 源

android - 来自开源代码的Gradle错误

java - 三叶草3.1.7不支持Java 7 Diamond

android - RxJavaPlugins 错误找不到类 "com.google.devtools.build.android.desugar.runtime.ThrowableExtension"

android - Gradle 配置缓存在本地计算机上有效,但在 GitHub Actions 上失败

Android SwitchPreference 在 4.2.2 中无法正常工作

android - 无法访问 includeAndroidResource 在 UnitTestOptions 中是私有(private)的

android - 升级到 Android Studio 3.0 后无法下载 appcompat-v7.aar

android - 检查 Android 较低 api 兼容性的代码

java - 在文件中存储日期的方法是什么?