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

时间:2013-01-09 10:08:13

标签: android android-lint

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

  

myproject / res / values / 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种语言

3 个答案:

答案 0 :(得分:35)

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

  
    

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

  
defaultConfig {
    // ...
    resConfigs "en", "de", "fr", "it"
}

此处有更多信息Putting Your APKs on DietAndroid(在页面上搜索resConfig)


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

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

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

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

答案 1 :(得分:8)

这里也是同样的问题。

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

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

这是自ADT 21.1发布以来发生的。

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

答案 2 :(得分:0)

由于包含了Google图书馆服务,我遇到了同样的问题......

目前,这是我的解决方案:

  1. 删除所有包含的库
  2. 申请lint
  3. 更正错误
  4. 再次添加所有库