i18n: check equality of tail '::'-ness between msgid and msgstr
Document generation by runrst in "doc" directory may succeed silently,
even though there is the translated message missing tail '::'. In this
case, it uses "<blockquote>" instead of "<pre>" to surround succeeding
text block unexpectedly in generated HTML file.
This patch adds the checker to check equality of tail '::'-ness
between msgid and msgstr.
To detect also msgstr unexpectedly ending with '::', this checker
doesn't have matching regexp against msgid, and is applied on all
msgid/msgstr pairs.
This checker is categorized as "warning" level, because problem
detected by this is not so serious for usual Mercurial usage.
--- a/i18n/check-translation.py Sat Feb 15 15:28:32 2014 +0100
+++ b/i18n/check-translation.py Sat Feb 15 18:40:39 2014 +0900
@@ -66,6 +66,28 @@
def warningchecker(msgidpat=None):
return checker('warning', msgidpat)
+@warningchecker()
+def taildoublecolons(pe):
+ """Check equality of tail '::'-ness between msgid and msgstr
+
+ >>> pe = polib.POEntry(
+ ... msgid ='ends with ::',
+ ... msgstr='ends with ::')
+ >>> for e in taildoublecolons(pe): print e
+ >>> pe = polib.POEntry(
+ ... msgid ='ends with ::',
+ ... msgstr='ends without double-colons')
+ >>> for e in taildoublecolons(pe): print e
+ tail '::'-ness differs between msgid and msgstr
+ >>> pe = polib.POEntry(
+ ... msgid ='ends without double-colons',
+ ... msgstr='ends with ::')
+ >>> for e in taildoublecolons(pe): print e
+ tail '::'-ness differs between msgid and msgstr
+ """
+ if pe.msgid.endswith('::') != pe.msgstr.endswith('::'):
+ yield "tail '::'-ness differs between msgid and msgstr"
+
####################
def check(pofile, fatal=True, warning=False):