# HG changeset patch # User Simon Heimberg # Date 1391459495 -3600 # Node ID ff6ab0b2ebf7c689d4bd307f62984dad682e364d # Parent 4276c906d90ec043430b49f1dd76d2fd058be0d2 i18n: posplit writes a warning for translators before rst directives rst directives like this one have been translated: .. note:: To help the translator include a comment before such messages. An entry containing a rst directive now looks like this: #. do not translate: .. note:: #: path/to/file:75 msgid = ".. note:: to think about" msgstr = ... diff -r 4276c906d90e -r ff6ab0b2ebf7 i18n/posplit --- a/i18n/posplit Sun Nov 17 20:16:14 2013 +0100 +++ b/i18n/posplit Mon Feb 03 21:31:35 2014 +0100 @@ -5,6 +5,7 @@ # license: MIT/X11/Expat # +import re import sys import polib @@ -30,6 +31,7 @@ cache = {} entries = po[:] po[:] = [] + findd = re.compile(r' *\.\. (\w+)::') # for finding directives for entry in entries: msgids = entry.msgid.split(u'\n\n') if entry.msgstr: @@ -51,6 +53,14 @@ for msgid, msgstr in zip(msgids, msgstrs): if msgid: newentry = mkentry(entry, delta, msgid, msgstr) + mdirective = findd.match(msgid) + if mdirective: + directive = mdirective.group(1) + comment = 'do not translate: .. %s::' % directive + if not newentry.comment: + newentry.comment = comment + elif comment not in newentry.comment: + newentry.comment += '\n' + comment addentry(po, newentry, cache) delta += 2 + msgid.count('\n') po.save()