[PATCH 1 of 2 STABLE] i18n: do not abuse msgstr of "DEPRECATED" to check for bad translation

Yuya Nishihara yuya at tcha.org
Tue Nov 3 14:58:59 UTC 2015


# HG changeset patch
# User Yuya Nishihara <yuya at tcha.org>
# Date 1446557966 -32400
#      Tue Nov 03 22:39:26 2015 +0900
# Branch stable
# Node ID 179436b029f4d59c4437280bb2ddf4b2dbe7c029
# Parent  58b7f3e93bbab749ab16c09df12aae5ba7880708
i18n: do not abuse msgstr of "DEPRECATED" to check for bad translation

Because 44cc9f63a2f1 requires the msgstr of "(DEPRECATED)", old *.po files
must be blamed. Using "DEPRECATED" would just hide the error.

For example, "LANG=da_DK.UTF-8 hg help serve" fails to hide deprecated
options right now, but check-translation.py couldn't detect it because
da.po has outdated translation of "DEPRECATED".

diff --git a/i18n/check-translation.py b/i18n/check-translation.py
--- a/i18n/check-translation.py
+++ b/i18n/check-translation.py
@@ -71,9 +71,7 @@ def promptchoice(pe):
 deprecatedpe = None
 @scanner()
 def deprecatedsetup(pofile):
-    pes = [p for p in pofile
-           if ((p.msgid == 'DEPRECATED' or p.msgid == '(DEPRECATED)') and
-               p.msgstr)]
+    pes = [p for p in pofile if p.msgid == '(DEPRECATED)' and p.msgstr]
     if len(pes):
         global deprecatedpe
         deprecatedpe = pes[0]
@@ -82,8 +80,8 @@ def deprecatedsetup(pofile):
 def deprecated(pe):
     """Check for DEPRECATED
     >>> ped = polib.POEntry(
-    ...     msgid = 'DEPRECATED',
-    ...     msgstr= 'DETACERPED')
+    ...     msgid = '(DEPRECATED)',
+    ...     msgstr= '(DETACERPED)')
     >>> deprecatedsetup([ped])
     >>> pe = polib.POEntry(
     ...     msgid = 'Something (DEPRECATED)',


More information about the Mercurial-devel mailing list