[fix] don't crash when failed to format a translatable string

This commit is contained in:
Laurent Peuch 2018-08-06 02:31:22 +02:00
parent 6f9bb54542
commit 8f2d094e0c

View file

@ -89,13 +89,20 @@ class Translator(object):
"""
if key in self._translations.get(self.locale, {}):
try:
return self._translations[self.locale][key].encode('utf-8').format(*args, **kwargs)
except KeyError as e:
logger.warning("Failed to format translated string '%s' with error: %s" % (key, e))
if self.default_locale != self.locale and key in self._translations.get(self.default_locale, {}):
logger.info("untranslated key '%s' for locale '%s'",
key, self.locale)
try:
return self._translations[self.default_locale][key].encode('utf-8').format(*args, **kwargs)
except KeyError as e:
logger.warning("Failed to format translatable string '%s' with error: %s" % (key, e))
return key
logger.exception("unable to retrieve key '%s' for default locale '%s'",
key, self.default_locale)