More complete handling of printf formatting in msgid/msgstr checks.

(That commit, r60813, should never have been done to 2.69 branch, will revert it there, sorry :/ ).
This commit is contained in:
2013-10-19 14:28:32 +00:00
parent e783611098
commit 4edffbf54f
2 changed files with 13 additions and 3 deletions

View File

@@ -446,10 +446,10 @@ class I18nMessages:
"""
ret = []
default_context = self.settings.DEFAULT_CONTEXT
_format = re.compile("%[.0-9]*[tslfd]").findall
_format = re.compile(self.settings.CHECK_PRINTF_FORMAT).findall
done_keys = set()
tmp = {}
rem = set()
tmp = {}
for key, msg in self.msgs.items():
msgctxt, msgid, msgstr = msg.msgctxt, msg.msgid, msg.msgstr
real_key = (msgctxt or default_context, msgid)
@@ -464,7 +464,7 @@ class I18nMessages:
done_keys.add(key)
if '%' in msgid and msgstr and _format(msgid) != _format(msgstr):
if not msg.is_fuzzy:
ret.append("Error! msg's format entities are not matched in msgid and msgstr ({} / {})"
ret.append("Error! msg's format entities are not matched in msgid and msgstr ({} / \"{}\")"
"".format(real_key, msgstr))
if fix:
msg.msgstr = ""