3

我的 Android 应用程序包含许多与语言无关的字符串,例如关税和支持电话号码。我已经放置了一个 XML 文件,/res/values例如:

<string name="helpdesk_number">0900 12345678</string>
<string name="helpdesk_tariff">60p</string>
<string name="helpdesk_address1">221B Baker Street</string>
<string name="helpdesk_address2">London NW1 6XE</string>

Lint 抱怨这些字符串没有翻译成其他语言:

语言环境缺少以下翻译:helpdesk_number、helpdesk_number、helpdesk_address1、helpdesk_address2...(另外 56 个)

虽然为其他语言显示不同的关税可能是有意义的,但帮助台仅在一个国家/地区。

将这些字符串复制到其他语言是否有意义?或者有什么方法可以让 Lint 忽略这些特定的字符串(或字符串文件)?

4

6 回答 6

5

即将到来的(希望很快)ADT17 将带来一些忽略一些 lint 警告的功能:

http://tools.android.com/recent/ignoringlintwarnings

http://tools.android.com/tips/lint/suppressing-lint-warnings

因此,使用 ADT 17,您可以在项目文件夹中放置一个 lint.xml,其中包含:

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

或者您也可以通过以下方式对每个字符串执行此操作:

tools:ignore="MissingTranslation"

但该文件并没有 100% 清楚地说明这一点,我目前没有时间对 17 进行 betatesting ..

跟进:ADT17 在您询问后不久就发布了,应该可以解决您的问题!

于 2012-03-21T18:14:33.047 回答
4

在最新版本的 Lint 中,您可以忽略特定的“MissingTranslation”字符串,如下所示:

字符串.xml

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

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

</resources>

http://tools.android.com/tips/lint/suppressing-lint-warnings

于 2014-05-30T22:50:36.750 回答
3

直接来自 Lint 工具:

如果不应该翻译字符串,您可以在元素上添加属性 translatable="false",或者您可以在名为 donottranslate.xml 的资源文件中定义所有不可翻译的字符串。或者,您可以使用 tools:ignore="MissingTranslation" 属性忽略该问题。

只需在默认的 res/values 文件夹中创建一个文件“donottranslate.xml”,Lint 就会忽略它。我将我所有的应用程序密钥/ID 等以及首选项都放在这里,因为这些不需要“翻译”而只占用其他文件中的空间。

于 2013-02-19T20:48:25.430 回答
3

避免该消息的其他方法,添加到您的资源文件中:

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
于 2013-10-09T16:33:31.243 回答
1
 > Best practice for language-independent strings

在我的应用程序中,我有两个字符串资源文件,一个名为“NonTranslatabable.xml”,它将接收那些不会被翻译的字符串(appName、fileNames、..)。

将应用程序翻译成其他语言时,我不必考虑是否必须翻译字符串。

于 2012-03-21T19:31:44.143 回答
0

将此添加到“android”下的 Gradle App 文件中

lintOptions {
    disable 'MissingTranslation'
}
于 2016-04-17T16:23:11.180 回答