【问题标题】:Lint: How to ignore "<key> is not translated in <language>" errors?Lint:如何忽略“<key> 未翻译成 <language>”错误?
【发布时间】:2012-07-11 17:46:27
【问题描述】:

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

我的 IDE 的验证工具 Lint 创建错误说:

newCardsOrderVals 未在 ar、bg、ca、cs 中翻译

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

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

我知道在发布之前我们确实需要正确地获取本地化文件,但目前这不是优先事项,因为屏幕本身的修改非常频繁。

【问题讨论】:

  • 有没有办法配置所有语言都标记为“未翻译”?我收到诸如“es、he 和 iw”之类的错误。为什么我会得到这些语言?如何配置我的 Android 应用以将设置限制为仅“en”?
  • @inder:可能是因为你的 res/ 文件夹中有“values-he”等目录?
  • 不,我没有任何这样的目录。只有值、布局和可绘制对象。
  • es,他和 iw 来自 Facebook SDK 库。
  • 这是 Android Lint 中的一个错误:code.google.com/p/android/issues/detail?id=50525

标签: eclipse android-studio localization android-resources android-lint


【解决方案1】:

Android 工作室:

  • “文件”>“设置”并在搜索框中输入“MissingTranslation”

日食:

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

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

【讨论】:

  • ...它在“窗口”>“首选项”>“Android”>“Lint 错误检查”下
  • 有帮助,但是我很久没有这个问题了,直到突然出现。我不知道为什么。
  • 感谢您的宝贵帖子
  • 仅供参考,在 Android Studio 下,“文件”>“设置”和“MissingTranslation”进入搜索框。
【解决方案2】:

您可以像这样在定义上设置属性translatable="false":

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

欲了解更多信息:http://tools.android.com/recent/non-translatablestrings

【讨论】:

  • 我说“本地化文件还不是完美的”。他们正在一点一点地被填满。 translatable="false" 会阻止任何人进行翻译。
  • 虽然答案与问题没有直接关系,但我想,它为像我这样在谷歌“如何制作 lint 不要担心我的应用程序常量/参数”。谢谢你,efor18!
【解决方案3】:

要在 gradle 构建中忽略这一点,请将其添加到构建文件的 android 部分:

lintOptions {
   disable 'MissingTranslation'
}

【讨论】:

  • 非常感谢,真的为我节省了几天寻找所有正确字符串的时间。
  • 不错,就这样
  • 将此添加到我的应用程序模块中为我解决了问题。
【解决方案4】:

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

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

【讨论】:

  • 这可能是最正确的方法,无需为所有项目禁用 lint
【解决方案5】:

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

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 一劳永逸的好方法,这样团队的所有开发人员都不必修改他们的 IDE 设置。有什么办法让它成为警告,而不是完全压制?
  • 您可以构建自定义 Lint 规则来调整特定事物的严重性状态。这里有一个例子:tools.android.com/tips/lint-custom-rules
【解决方案6】:

lint.xml 文件中插入:

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

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

更多详情:Suppressing Lint Warnings

【讨论】:

    【解决方案7】:

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

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

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

    【讨论】:

      【解决方案8】:

      在你的 gradle 文件中添加以下内容

          lintOptions {
             disable 'MissingTranslation'
          }
      

      【讨论】:

        【解决方案9】:

        另外,

        不依赖于项目的属性,Eclipse 首选项。
        在 Mac 中,Eclipse > 首选项

        【讨论】:

          【解决方案10】:

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

          查看this other answer了解详情

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

          【讨论】:

            【解决方案11】:

            您也可以将不想翻译的资源放入名为donottranslate.xml 的文件中。

            示例及说明:http://tools.android.com/recent/non-translatablestrings

            【讨论】:

            • 这是最好的方法,而且很有条理。
            【解决方案12】:

            他们中的许多人给出了不同的工作答案,我也遇到了相同的 lint 错误 我通过使用 eclipse 执行以下操作使其忽略。

            1. 点击 Windows
            2. 点击首选项
            3. 选择 android > Lint 错误检查。
            4. 点击全部忽略 > 应用 > 确定。

            就是这样。

            【讨论】:

            • 这将忽略所有 lint 首选项。不仅是缺失的翻译
            【解决方案13】:

            以下内容对我有用。

            • 点击窗口
            • 点击首选项
            • 选择 android > Lint 错误检查。
            • 查找并选择相关的 Lint 检查和
            • 将严重性设置为“忽略”(右下角)

            【讨论】:

              猜你喜欢
              • 2012-12-12
              • 1970-01-01
              • 1970-01-01
              • 2011-09-25
              • 2014-06-23
              • 2012-01-24
              • 1970-01-01
              • 2011-11-27
              相关资源
              最近更新 更多