[PATCH 2 of 2 STABLE] i18n: look translation of both "DEPRECATED" and "(DEPRECATED)" up

FUJIWARA Katsunori foozy at lares.dti.ne.jp
Sat Oct 31 18:57:33 CDT 2015


# HG changeset patch
# User FUJIWARA Katsunori <foozy at lares.dti.ne.jp>
# Date 1446334736 -32400
#      Sun Nov 01 08:38:56 2015 +0900
# Branch stable
# Node ID 04bd19bf32794ae29fded5865e826fb681d6c148
# Parent  6d0e49b14bc092b89b81a15cf31e0ad1f63eb639
i18n: look translation of both "DEPRECATED" and "(DEPRECATED)" up

Since 44cc9f63a2f1, deprecated commands, options and so on are
detected by "(DEPRECATED)" instead of "DEPRECATED".

"hg.pot" generated from recent source files doesn't contain msgid
"DEPRECATED", and looking the translation of "DEPRECATED" up in
up-to-date *.po files works incorrectly.

But on the other hand, there are still old *.po files, which contain
msgid "DEPRECATED" but not "(DEPRECATED)". Looking the translation of
"(DEPRECATED)" up in such old *.po files also works incorrectly.

This patch resolves this problem by looking translation of both
"DEPRECATED" and "(DEPRECATED)" up.

This should work correctly, because previous patch makes "deprecated"
checker be applied only on translations, of which msgid contains exact
"(DEPRECATED)" string.

'p.msgstr' examination in 'deprecatedsetup()' is needed to ignore
untranslated entries. This also makes 'deprecatedpe.msgstr'
examination in 'deprecated()' meaningless.

diff --git a/i18n/check-translation.py b/i18n/check-translation.py
--- a/i18n/check-translation.py
+++ b/i18n/check-translation.py
@@ -71,7 +71,9 @@ def promptchoice(pe):
 deprecatedpe = None
 @scanner()
 def deprecatedsetup(pofile):
-    pes = [p for p in pofile if p.msgid == 'DEPRECATED']
+    pes = [p for p in pofile
+           if ((p.msgid == 'DEPRECATED' or p.msgid == '(DEPRECATED)') and
+               p.msgstr)]
     if len(pes):
         global deprecatedpe
         deprecatedpe = pes[0]
@@ -108,7 +110,7 @@ def deprecated(pe):
     >>> match(deprecated, pe)
     """
     if not ('(DEPRECATED)' in pe.msgstr or
-            (deprecatedpe and deprecatedpe.msgstr and
+            (deprecatedpe and
              deprecatedpe.msgstr in pe.msgstr)):
         yield "msgstr inconsistently translated (DEPRECATED)"
 


More information about the Mercurial-devel mailing list