在我的应用程序中,我有一套完整翻译的语言,另一组语言只有几个字符串的翻译。
对于有完整翻译的语言,我希望Lint警告我MissingTranslations。
对于具有部分翻译的语言,我希望Lint忽略MissingTranslations。
我无法弄清楚如何同时实现这两个目标。
答案 0 :(得分:0)
在警告标记上,按 Ctrl - 1 以显示可用的快速修正。您可以在quickfix解析选择中选择ignore the warning for a certain file。
您仍然需要自己选择是部分翻译还是完整翻译。
答案 1 :(得分:-1)
对于具有部分翻译的语言,您可以使用注释。既然你说你只有几个字符串,你可以在xml文件中抑制那些特定的字符串,如下所示:
的strings.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
答案 2 :(得分:-2)
您可以通过根据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”匹配,但它实际上仅应用于打印到屏幕的文本的一部分。上例中的正则表达式锚点显示了边界。
没有对我有用的一些合理方法是:
tools:ignore="MissingTranslation"
添加到部分翻译的区域设置的<resources>
元素。<ignore path="src/main/res/values-ru/strings.xml"/>
添加到lint.xml
。如果您恰好是想要抑制区域特定字符串文件的MissingTranslation错误的特殊情况,该文件仅部分覆盖您的默认字符串文件(例如,默认文件是英语,并且您希望在{{1)中进行一些覆盖}}),请参阅this answer了解解决方案。