Lint:如何忽略“<key>未在<language>中翻译”错误?</language> </key>

时间:2012-07-12 01:45:48

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

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

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

  

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

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

是否有办法关闭此特定支票,或理想情况下将其设为警告而非错误?

据我所知,在发布之前我们确实需要正确的本地化文件,但暂时不是优先考虑因为屏幕本身经常被修改。

13 个答案:

答案 0 :(得分:348)

Android Studio:

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

蚀:

  • Windows / Linux:在“窗口”&gt; “偏好”&gt; “Android”&gt; “Lint Error Checking”
  • Mac:“Eclipse”&gt; “偏好”&gt; “Android”&gt; “Lint Error Checking”

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

Missing translations, is not translated in

答案 1 :(得分:85)

您可以在定义上设置属性translatable =“false”,如下所示:

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

有关详细信息:http://tools.android.com/recent/non-translatablestrings

答案 2 :(得分:82)

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

lintOptions {
   disable 'MissingTranslation'
}

答案 3 :(得分:23)

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

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

答案 4 :(得分: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

答案 5 :(得分:9)

lint.xml文件中插入:

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

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

有关详细信息:Suppressing Lint Warnings

答案 6 :(得分:8)

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

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

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

答案 7 :(得分:6)

在strings.xml文件的标题中添加以下内容

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<resources  xmlns:tools="http://schemas.android.com/tools" tools:locale="en">

这使您可以告诉工具您在基础值文件夹中使用的语言。对于values-de或values-en文件夹中的字符串,这很明显,但不在基本的“values”文件夹中。当您在默认字符串中查找拼写错误时,Lint将使用区域设置信息来选择正确的字典。

答案 8 :(得分:5)

此外,

不依赖项目依赖性,Eclipse首选项。
在Mac,Eclipse&gt;偏好

enter image description here

答案 9 :(得分:3)

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

查看this other answer了解详情

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

答案 10 :(得分:1)

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

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

答案 11 :(得分:1)

他们中的许多人都有一个不同的工作答案,我也得到了相同的lint错误 我通过使用eclipse执行以下操作来忽略它。

  1. 点击Windows
  2. 点击偏好
  3. 选择android&gt; Lint Error Checking。
  4. 点击忽略全部&gt;申请&gt;确定。
  5. 多数民众赞成。

答案 12 :(得分:1)

以下对我有用。

  • 点击Windows
  • 点击偏好
  • 选择android&gt; Lint Error Checking。
  • 查找并选择相关的Lint检查和
  • 将严重性设置为“忽略”(位于右下角)