具有不同默认语言资源字符串的Productflavors

时间:2018-03-02 10:41:56

标签: android gradle android-gradle

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

目前我的设置是:

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

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

我理解为什么gradle表现得那样,但我希望有一个更好的解决方案,而不是手动保留INT-App中的所有字符串也在GER-App的默认字符串中......?

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

有什么方法可以实现这个目标吗?

非常感谢! JPM

1 个答案:

答案 0 :(得分:0)

在德语风格中,不会将{1}}资源文件中的德语字符串放在中,而是放入英语字符串。

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