From 6c01738569fa82a7687afe61db2cc415d6a3dedc Mon Sep 17 00:00:00 2001 From: Keith Mitchell Date: Thu, 12 Jan 2012 11:17:51 -0800 Subject: [PATCH] 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 --- r2/r2/lib/translation.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/r2/r2/lib/translation.py b/r2/r2/lib/translation.py index 73ae69a48..ffe712d05 100644 --- a/r2/r2/lib/translation.py +++ b/r2/r2/lib/translation.py @@ -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)