android - 忽略 Android Lint "MissingTranslation"检查部分翻译

标签 android android-lint

在我的应用程序中,我有一组具有完整翻译的语言,以及另一组只有几个字符串的翻译的语言。

对于具有完整翻译的语言,我希望 Lint 就 MissingTranslations 向我发出警告。

对于有部分翻译的语言,我想让 Lint 忽略 MissingTranslations。

我不知道如何同时实现这两个目标。

最佳答案

您可以通过根据正则表达式忽略 lint.xml 中的错误消息来做到这一点文件:

<?xml version="1.0" encoding="UTF-8"?>
<lint>
    <issue id="MissingTranslation">
        <ignore regexp='^".*" is not translated in "ru" \(Russian\)$'/>
    </issue>
</lint>

这将抑制俄语的 MissingTranslation 错误,但不会抑制任何其他语言。忽略错误消息有点粗鲁——如果他们改变措辞,一切都可能会崩溃——但这是我所知道的目前唯一有效的解决方案。

请注意,虽然正则表达式被记录为与“the error message”匹配,但它实际上仅应用于屏幕上打印的部分文本。上例中的正则表达式 anchor 显示了边界。

一些没有对我有用的合理方法是:

  • 正在添加 tools:ignore="MissingTranslation"到部分翻译的语言环境的 <resources>元素。
  • 正在添加 <ignore path="src/main/res/values-ru/strings.xml"/>lint.xml 中的 MissingTranslation 问题 block .

如果您恰好是一种非常特殊的情况,想要抑制区域特定字符串文件的 MissingTranslation 错误,该文件仅部分覆盖您的默认字符串文件(例如,默认文件是英语,并且您希望在 values-en-rUS/strings.xml 中进行一些覆盖) ), 请参阅 this answer寻求解决方案。

关于android - 忽略 Android Lint "MissingTranslation"检查部分翻译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12019282/

相关文章:

android - 使用 MediaPlayer 的流式音频进度条

android - 旋转手机时, fragment onCreateView 在 Tab(ActionBar)内调用两次

android - 无法使用 GDB 和 Eclipse 调试 NDK 的 C++ 代码(OS - Windows 7)

android - Lint : "Newer Library Versions Available" when using variables

android - 考虑 TextView 是可选择的

android - 如何在Android Studio中正确实现和测试“自定义 Lint 规则”?

android - 带有Gradle的Android Studio拼写检查器

java - Admob 6.4.1 - 膨胀类 com.google.ads.AdView 时出错

Android ContactsContract.Contacts.openContactPhotoInputStream 总是返回 null

Android lint - 应用快速修复按钮在 Android Studio 上被禁用