[PATCH 1 of 2 STABLE] i18n: fix regexp pattern to detect translation for DEPRECATED

FUJIWARA Katsunori foozy at lares.dti.ne.jp
Sat Oct 31 23:57:32 UTC 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 6d0e49b14bc092b89b81a15cf31e0ad1f63eb639
# Parent  6474b64045fb83733d6f7b774bbc8b2869bd1fed
i18n: fix regexp pattern to detect translation for DEPRECATED

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

Therefore, 'deprecated' checker in i18n/check-translation.py should
check translation, of which msgid contains "(DEPRECATED)" instead of
"DEPRECATED".

At glance, it seems to do so, but it actually doesn't, because Python
regexp treats "()" as grouping of patterns and "(DEPRECATED)" matches
only against "DEPRECATED".

diff --git a/i18n/check-translation.py b/i18n/check-translation.py
--- a/i18n/check-translation.py
+++ b/i18n/check-translation.py
@@ -76,7 +76,7 @@ def deprecatedsetup(pofile):
         global deprecatedpe
         deprecatedpe = pes[0]
 
- at fatalchecker('(DEPRECATED)')
+ at fatalchecker(r'\(DEPRECATED\)')
 def deprecated(pe):
     """Check for DEPRECATED
     >>> ped = polib.POEntry(
@@ -102,6 +102,10 @@ def deprecated(pe):
     True
     >>> for e in deprecated(pe): print e
     msgstr inconsistently translated (DEPRECATED)
+    >>> pe = polib.POEntry(
+    ...     msgid = 'Something (DEPRECATED, foo bar)',
+    ...     msgstr= 'something (DETACERPED, foo bar)')
+    >>> match(deprecated, pe)
     """
     if not ('(DEPRECATED)' in pe.msgstr or
             (deprecatedpe and deprecatedpe.msgstr and


More information about the Mercurial-devel mailing list