当前位置: 首页 > 知识库问答 >
问题:

Android Lint:如何忽略故意只覆盖一些默认翻译的区域语言环境字符串文件中丢失的翻译警告?

司信厚
2023-03-14

是否有可能在单独的资源文件中翻译一些字符串,但不是全部,而不会让Lint抱怨缺少翻译?

例如:我的应用程序的字符串都在res/value/strings.xml.其中一个字符串是

<代码>

由于“邮政编码”在美国通常被称为“邮政编码”,我想在rUS/strings中添加另一个资源res/values。包含内容的xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="postal_code">Zip Code</string>
</resources>

然而,Lint抱怨值/strings.xml中的其他字符串,但不抱怨值-en-rUS/strings.xml

我意识到您可以通过指定工具来抑制警告:忽略值/strings.xml.中的但这是不可取的,因为Lint警告在翻译成另一种语言时实际上很有用。

相反,是否可以抑制rUS/字符串中的值中的警告。xml文件,如中所示,告诉Lint在查找丢失的翻译时不要使用该文件作为标准?

共有3个答案

杜诚
2023-03-14

Lint支持部分区域翻译,但需要知道默认字符串是什么语言。这样,它就可以区分部分地区翻译和不同地区的缺失翻译。

在值/字符串中指定区域设置。xml:

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

运行lint--show时引用lint命令行工具:

By default this detector allows regions of a language to just provide a
subset of the strings and fall back to the standard language strings. [...]

You can tell lint (and other tools) which language is the default language
in your res/values/ folder by specifying tools:locale="languageCode" for
the root <resources> element in your resource file. (The tools prefix
refers to the namespace declaration http://schemas.android.com/tools.)

资料来源:https://android.googlesource.com/platform/tools/base//master/lint/libs/lint checks/src/main/java/com/android/tools/lint/checks/TranslationDetector。爪哇#88

将语言环境规范添加到您的默认语言文件中,您不应该收到en-rUS的错误,但仍会收到任何其他丢失的翻译的通知。

丁善
2023-03-14

根据这个答案,我找到了一个更好的解决方案:https://stackoverflow.com/a/13797364/190309

只需将忽略="Missing转换"添加到您的string.xml中,例如:

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

  <!-- your strings here; no need now for the translatable attribute -->

</resources>
严琨
2023-03-14

禁用MissingTranslations检查的一个好方法是在特定于模块的构建中添加选项。gradle文件。

android {

    lintOptions{
        disable 'MissingTranslation'
    }

    //other build tags
}

如果字符串不在特定于语言环境的字符串文件中,它将从默认文件中获取字符串,该文件通常是字符串。xml。

 类似资料:
  • 问题内容: 我有一个模板与此: Django自动将此翻译为Terminarsesión西班牙语。但是,我想将其翻译为Cerrarsesión。 我试图将此文字添加到.po文件中,但是在编译消息时出现错误,指出该文字重复。 有没有一种方法可以更改/覆盖默认的Django翻译? 谢谢。 问题答案: 最简单的方法是收集在django.contrib.admin语言环境文件夹中找到的.po文件,然后重新编

  • 我正在创建一个Wordpress主题,它将从英语翻译成法语。我已经使用Wordpress的gettext函数包含了所有字符串。 但是 我想在网站的英文版上打印一个特定字符串的法文版,反之亦然。我试过这个(英文版): 但是后来Podit抱怨了一个非ASCII字符串。所以,目前,在英文版中,我有 如何输出该字符串的法语翻译,即使语言环境设置为使用英语?

  • 问题内容: 我在相当大的Angular项目上使用angular-translate。我将项目分为多个模块以使其更易于管理,但是无法分解每个模块的翻译字符串。 例如,我有模块A和B,其中B是A的子模块。有一些与模块A覆盖的HTML有关的字符串,它们位于’/json/localization/A/en.json’中。同样,我在’/json/localization/B/en.json’中放置了与B有关

  • 问题内容: 我知道大多数人都使用下面的方法,并为需要翻译的特定表创建翻译表,但这可能会导致大量的表。 以下方法可行吗?假设您有很多表需要翻译超过1列。您能将以下所有翻译都保留在一张表格中吗?我想这张桌子的大小会随着时间的推移而大大增加。 因此,使用第二种方法,您将获得像这样的文本 问题答案: 我不确定您为什么担心表的数量:减少表的数量并不能自动意味着您的数据库更小,更高效或设计更好。特别是如果减少

  • 我有一个从xml文档中读取数据的程序。在这个xml文档中,一些属性包含特殊字符,如“\n”、“t”等。 有没有一种简单的方法可以将所有这些字符串替换为实际的字符,或者我必须像下面的例子一样为每个字符手动替换? 手动示例: 编辑: 我正在寻找某种方法来处理字符串,就像这样的转义字符串(尽管我知道这是行不通的)

  • 我正在用Django做一个中文博客。我用中文写所有我能控制的东西,如文章文本,博客标题,博客导航,评论和联系人表单的标签标签。我唯一不能控制的是表单提交错误,如“此字段是必需的。”,“输入有效的电子邮件地址。”。因为我使用django评论框架和表单库来制作我的评论表单和联系人表单,我不知道如何将英文版替换成中文版。 为什么django翻译一些错误消息而忽略其他错误消息? 如果django不能自动翻