我的应用程序仅支持 2 种语言 - 英语和德语。所以我有这样的语言字符串文件夹结构:
myproject/res/values/strings.xml
myproject/res/values-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 种语言?
Update:您可以限制Gradle导入的语言!
Cyril Mottier 指出您可以指定支持哪些资源。
从 Android Gradle Plugin 0.7 开始,您可以将有关应用程序处理的配置的信息传递给构建系统。这是通过 resConfig 和 resConfigs 风格以及默认配置选项完成的。下面的 DSL 可防止 aapt 打包与应用程序托管资源配置不匹配的资源:
defaultConfig {
// ...
resConfigs "en", "de", "fr", "it"
}
更多信息请点击此处节食你的 APK http://cyrilmottier.com/2014/08/26/putting-your-apks-on-diet/ and Android http://tools.android.com/tech-docs/new-build-system(在页面搜索resConfig)
看来,如果您将项目添加到构建路径中,则已添加到这些项目中的任何和所有语言都将渗透到您的项目中。例如“google-play-services_lib”项目,它为我“支持”的项目添加了 40 多种语言。这就是我遇到疯狂的 lint 错误(与上面的类似)的原因,即使我只有默认的西班牙语(values-es)资源文件夹。
解决方案是简单地从外部/导入的项目中删除您不支持的资源文件/文件夹。在我删除了 google-play-services_lib 项目中除 value/values-es 文件夹之外的所有文件夹后,非目标语言的 lint 警告消失了。请务必保留资源文件的备份,以防您以后想添加对这些语言/区域的支持。
希望这可以帮助。几天来,我一直在用头撞桌子、搜索 SO 和 Google,试图找出如何表述这个问题。然后我终于意识到我的两个项目(图书馆项目)之间有什么区别,这两个项目都有翻译。
我确实希望有一种方法可以告诉项目我只支持语言 x/y/z 并让它忽略其余语言。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)