Lint:如何忽略“ <key>不翻译成<language>”错误?


189

我无法编译/调试我们的Android应用,因为本地化文件还不够完善。

我的IDE的验证工具Lint创建错误,提示:

newCardsOrderVals未翻译为ar,bg,ca,cs

使用Ant进行编译/安装/运行可以正常工作,但是我想使用自己的IDE来简化调试。

有没有办法关闭此特定检查,或者理想情况下使其成为警告而不是错误?

我知道在发布之前,我们确实需要正确处理本地化文件,但是由于屏幕本身经常被频繁修改,因此暂时还不是优先事项。


1
有没有一种方法可以配置将所有所有语言标记为“未翻译”?我收到“ es,他和iw”之类的错误。我为什么要使用这些语言?如何配置我的Android应用程序以将设置限制为仅“ en”?
2013年

@inder:也许是因为您的res /文件夹中有“ values-he”等目录?
Nicolas Raoul

1
不,我没有任何此类目录。仅值,布局和可绘制。
2013年

7
es,他和iw来自Facebook SDK库。
madej 2013年

2
这是Android Lint中的错误:code.google.com/p/android/issues/detail?
id=50525

Answers:


348

Android Studio:

  • 在“文件”>“设置”中,在搜索框中键入“ MissingTranslation”

蚀:

  • Windows / Linux:在“窗口”>“首选项”>“ Android”>“ Lint错误检查”中
  • Mac:“ Eclipse”>“首选项”>“ Android”>“ Lint错误检查”

找到该MissingTranslation行,并将其设置Warning为如下所示:

缺少翻译,未翻译成


2
...位于“窗口”>“首选项”>“ Android”>“ Lint错误检查”下
Ollie Bennett

2
这很有帮助,但很长一段时间以来我一直没有这个问题,直到突然出现。而且我不知道为什么。
pktangyue 2014年

感谢您的宝贵帖子
Pawan asati 2014年

仅供参考,在Android Studio中,将“文件”>“设置”和“ MissingTranslation”插入搜索框。
同peer

86

您可以像这样在定义中设置属性translatable =“ false”:

<string name="account_setup_imap" translatable="false">IMAP</string>

有关更多信息:http : //tools.android.com/recent/non-translatablestrings


1
我说:“本地化文件不完美尚未 ”。他们一点一点地被装满。translatable =“ false”将阻止任何人进行翻译。
尼古拉斯·拉乌尔

3
虽然答案与问题没有直接关系,但我想,它为像我这样的人提供了出色的解决方案,他们在Google“如何使皮棉不用担心我的应用程序常数/参数”时找到了这个主题。谢谢,efor18!
aka_sh 2014年

83

要在gradle构建中忽略此操作,请将其添加到构建文件的android部分:

lintOptions {
   disable 'MissingTranslation'
}

2
非常感谢,从字面上节省了我寻找所有用于生产的正确字符串的时间。
D-Kent

好人,做到了
Mirko

将此添加到我的应用程序模块中为我保存。
水星

23

这将导致Lint忽略文件中所有字符串缺少的转换错误,但是如果需要,可以验证其他字符串资源文件。

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools" 
    tools:ignore="MissingTranslation">

这可能是最正确的进行方式,而不会为所有项目禁用皮棉
MatPag '17

11

如果要关闭有关特定字符串的警告,可以使用以下命令:

strings.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>    

    <!--suppress MissingTranslation -->
    <string name="some_string">ignore my translation</string>
    ...

</resources>

如果要警告特定字符串而不是错误,则需要构建自定义的Lint规则来调整特定事物的严重性状态。

http://tools.android.com/tips/lint-custom-rules


1
+1一劳永逸的好方法,这样团队中的所有开发人员都不必修改自己的IDE设置。有什么办法可以警告,而不是完全压制?
Nicolas Raoul

您可以构建自定义的Lint规则来调整特定事物的严重性状态。这里有一个示例:tools.android.com/tips/lint-custom-rules
Eduko

9

lint.xml文件中插入以下内容:

<?xml version="1.0" encoding="UTF-8"?>
<lint>
    ...

    <issue
        id="MissingTranslation"
        severity="ignore" />
</lint>

有关更多详细信息:禁止棉绒警告


8

在/res/values.xml文件的资源根选项卡中添加以下行:

<resources
xmlns:tools="http://schemas.android.com/tools" 
    tools:locale="en" tools:ignore="MissingTranslation">

tools:locale将本地语言设置为英语,以后无需对所有资源字符串和工具进行语言翻译,而忽略:让Lint忽略资源字符串值的缺失翻译。


6

在Android部分的gradle文件中添加以下内容

    lintOptions {
       disable 'MissingTranslation'
    }

5

此外,

与项目无关的特性是Eclipse Preferences。
在Mac中,Eclipse>首选项

在此处输入图片说明


3

另一种方法是指示您打算支持的语言,并使用Gradle的'resConfigs'选项过滤掉其余语言。

查看其他答案以了解详细信息

我认为这会更好,因为您不必完全忽略实际要支持的语言的合法翻译错误



1

他们中的许多人给出了不同的工作答案,而且我也遇到了相同的皮棉错误,通过对Eclipse进行以下操作使其忽略。

  1. 点击Windows
  2. 点击偏好
  3. 选择android> Lint错误检查。
  4. 单击忽略所有>应用>确定。

而已。


2
这将忽略所有皮棉首选项。不仅缺少翻译
LucianoRodríguez,2014年

1

以下对我有用。

  • 点击Windows
  • 点击偏好
  • 选择android> Lint错误检查。
  • 查找并选择相关的Lint检查并
  • 将严重性设置为“忽略”(右下)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.