diff --git a/moulinette/core.py b/moulinette/core.py index fc147c01..4e1b20f4 100644 --- a/moulinette/core.py +++ b/moulinette/core.py @@ -89,13 +89,20 @@ class Translator(object): """ if key in self._translations.get(self.locale, {}): - return self._translations[self.locale][key].encode('utf-8').format(*args, **kwargs) + 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) - return self._translations[self.default_locale][key].encode('utf-8').format(*args, **kwargs) + 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)