在我的应用程序中,我有一组具有完整翻译的语言,以及另一组只有几个字符串的翻译的语言。
对于具有完整翻译的语言,我希望 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/