[PATCH 4 of 4] i18n: merge i18n comments of translatable texts correctly
FUJIWARA Katsunori
foozy at lares.dti.ne.jp
Fri Aug 24 14:20:45 EDT 2018
# HG changeset patch
# User FUJIWARA Katsunori <foozy at lares.dti.ne.jp>
# Date 1534916276 -32400
# Wed Aug 22 14:37:56 2018 +0900
# Node ID 341fa53ab3c4c8fb2d009e413fe9555c275a817c
# Parent 9550ea4f1d737a7f3d79fbf2e1aa173497f75d4b
# Available At https://bitbucket.org/foozy/mercurial-wip
# hg pull https://bitbucket.org/foozy/mercurial-wip -r 341fa53ab3c4
# EXP-Topic filemerge-followup
i18n: merge i18n comments of translatable texts correctly
Before this patch, i18n comments of translatable texts are lost at
creation of hg.pot file, if:
- same translatable text appears multiple times,
- the 1st appearance does not have i18n comment, and
- any of rest has it
For example, previous patch for filemerge.py adds translatable texts
with i18n comments, but these comments are lost, because:
- automatically added texts in docstring of internal merge tools are
picked up earlier than these translatable texts, because of
location in filemerge.py
- but docstring has no i18n comment
This patch makes addentry() of posplit merge i18n comments of later
translatable texts, in order to keep them at creation of hg.pot.
diff --git a/i18n/posplit b/i18n/posplit
--- a/i18n/posplit
+++ b/i18n/posplit
@@ -15,6 +15,14 @@ def addentry(po, entry, cache):
e = cache.get(entry.msgid)
if e:
e.occurrences.extend(entry.occurrences)
+
+ # merge comments from entry
+ for comment in entry.comment.split('\n'):
+ if comment and comment not in e.comment:
+ if not e.comment:
+ e.comment = comment
+ else:
+ e.comment += '\n' + comment
else:
po.append(entry)
cache[entry.msgid] = entry
More information about the Mercurial-devel
mailing list