在Android Studio中,是否有可能使用lint忽略特定的语言环境进行翻译?

3
正如标题所述,我想要忽略Android Studio中MissingTranslation代码检查中特定区域设置的问题。以下是这个问题背后的原因:
我有多个针对特定应用程序的Android Studio项目。所有这些应用程序都引用一个共享库项目中的一个或多个模块,该共享库包含通用代码、资源等。
共享模块包含了所有其他应用程序使用的通用代码、小部件、资源和字符串。问题是我的共享模块比我的应用程序拥有更多语言的翻译,因此应用程序会抱怨在共享模块中包含的其他语言中未能翻译应用程序特定的字符串。
我有一种感觉,如果我将共享模块构建为库并以这种方式引用它们,而不是直接在应用程序项目中引用代码,这个错误就会消失。然而,当我在应用程序中进行工作时,我经常需要修改共享库中的代码,因此直接引用代码比引用已构建的模块更高效。
我也知道可以完全禁用MissingTranslation,但我希望知道特定应用程序字符串在支持该应用程序的区域设置中未被翻译。

Lint错误是正确的 - 如果您的共享模块已翻译但您的应用程序没有翻译,用户将看到部分翻译的应用程序。您是否尝试从各个应用程序完全剥离特定语言(以便用户始终看到未翻译的特定语言的应用程序)? - ianhanniballake
@ianhanniballake 我理解这个错误是正确的。问题在于我是一个独立开发者,需要自己支付翻译费用,所以我只会根据需求翻译特定应用程序。然而,常见的非应用程序特定字符串会被放入库中。因此,我的库可能有10种语言的字符串,但特定的应用程序可能只翻译了5种语言。如果通用字符串被翻译成应用程序不完全支持的语言环境,我可以接受。我想要消除的是我的应用程序字符串现在警告我每个字符串都缺少库语言环境的翻译。希望这样说得清楚。 - Cory Charlton
1个回答

6

MissingTranslation Lint警告会在存在用户看到部分翻译应用的可能性时始终出现。

因此,您有两个选择:

  1. 通过删除未使用的备选资源(从而删除库项目中不支持语言的已翻译字符串)来仅限于特定支持的语言:
    android {
        defaultConfig {
            ...
            resConfigs "en", "fr"
        }
    }
  1. 抑制MissingTranslation警告。

1
太棒了,resConfigs 正是我正在寻找的! - Cory Charlton

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接