Fallback to the non-dialect version of a language

If a language dialect is used (such as pt-pt), and that
dialect is lacking a given translation, fallback
the the non-dialect (e.g., pt) translation, if there is one
This commit is contained in:
Keith Mitchell
2012-01-12 11:17:51 -08:00
parent 9faf55e479
commit 6c01738569

View File

@@ -59,6 +59,14 @@ def set_lang(lang, graceful_fail=False, fallback_lang=None, **kwargs):
registry.replace(pylons.translator, NullTranslations())
else:
translator = _get_translator(lang, graceful_fail = graceful_fail, **kwargs)
base_lang, is_dialect, dialect = lang.partition("-")
if is_dialect:
try:
base_translator = _get_translator(base_lang)
except LanguageError:
pass
else:
translator.add_fallback(base_translator)
if fallback_lang:
fallback_translator = _get_translator(fallback_lang,
graceful_fail=True)