Use 'translated' English as a fallback translation

This avoids showing ugly strings such as "comment {verb}"
to end users
This commit is contained in:
Keith Mitchell
2012-01-11 15:44:11 -08:00
parent b9f948325d
commit acae7b43a2
2 changed files with 6 additions and 2 deletions

View File

@@ -373,7 +373,7 @@ def set_iface_lang():
#one
for l in lang:
try:
h.set_lang(l)
h.set_lang(l, fallback_lang=g.lang)
c.lang = l
break
except h.LanguageError:

View File

@@ -52,13 +52,17 @@ def _get_translator(lang, graceful_fail=False, **kwargs):
return translator
def set_lang(lang, graceful_fail = False, **kwargs):
def set_lang(lang, graceful_fail=False, fallback_lang=None, **kwargs):
"""Set the i18n language used"""
registry = pylons.request.environ['paste.registry']
if not lang:
registry.replace(pylons.translator, NullTranslations())
else:
translator = _get_translator(lang, graceful_fail = graceful_fail, **kwargs)
if fallback_lang:
fallback_translator = _get_translator(fallback_lang,
graceful_fail=True)
translator.add_fallback(fallback_translator)
registry.replace(pylons.translator, translator)