Android Lint限制语言以检查缺少的翻译

Pau*_*kov 23 android android-lint

我的应用程序仅支持2种语言 - 英语和德语.所以我有语言字符串的这种文件夹结构:

的myproject/RES /值/ strings.xml中

的myproject/RES /值-DE/strings.xml中

当我运行Lint检查时,我收到许多关于缺少语言的警告,我的应用程序不需要支持:

"some_string"未翻译为af,am,ar,be,bg,ca,cs,da,el,en-rGB,es,es-rUS,et,fa,fi,fr,hi,hr,hu,in ,it,iw,ja,ko,lt,lv,ms,nb,nl,pl,pt,pt-rPT,ro,ru,sk,sl,sr,sv,sw,th,tl,tr,uk,vi ,zh-rCN,zh-rTW,zu

这个警告很难理解哪些字符串没有翻译成德语.我必须查看每个警告并搜索"de"符号以了解该字符串没有翻译成德语.

所以我的问题很简单 - 我怎么能告诉Lint只检查2种语言

thu*_*ker 36

更新:您可以限制Gradle导入的语言!Cyril Mottier指出您可以指定您支持的资源.

启动Android Gradle Plugin 0.7,您可以将有关应用程序处理的配置的信息传递给构建系统.这要归功于resConfig和resConfigs flavor和default config选项.下面的DSL可以防止包装资源与应用程序托管资源配置不匹配:

defaultConfig {
    // ...
    resConfigs "en", "de", "fr", "it"
}
Run Code Online (Sandbox Code Playgroud)

更多信息在这里将你的APK放在DietAndroid上(在页面上搜索resConfig)


看来,如果将项目添加到构建路径,那么已添加到这些项目的任何和所有语言都将逐渐渗透到项目中.例如"google-play-services_lib"项目,它为我"支持"的项目添加了40多种语言.这就是我得到疯狂的lint错误(类似于你的错误)的原因,即使我只有一个默认和西班牙语(values-es)资源文件夹.

解决方案是简单地从外部/导入的项目中删除您不支持的资源文件/文件夹.在我删除了google-play-services_lib项目中除了values/values-es文件夹之外的所有文件夹之后,非目标语言的lint警告就消失了.如果您希望以后添加对这些语言/区域的支持,请务必备份资源文件.

希望这可以帮助.我正在敲桌子和SO和谷歌几天试图找出如何解决这个问题.然后我终于意识到我的两个项目之间存在差异,这两个项目都有翻译,图书馆项目.

我希望有一种方法可以告诉项目我只支持x/y/z语言并让它忽略其余的.


Dan*_*ato 8

同样的问题在这里

我创建了一个错误报告,随时为它加注星标

http://code.google.com/p/android/issues/detail?id=50525

这发生在自ADT 21.1发布以来.

我知道没有解决方法(编辑:我以前虽然找到了解决方法,但我查看了错误的文件,ups)