From acae7b43a2f6e9fae2d1e800643c5ffcbe4f9101 Mon Sep 17 00:00:00 2001 From: Keith Mitchell Date: Wed, 11 Jan 2012 15:44:11 -0800 Subject: [PATCH] Use 'translated' English as a fallback translation This avoids showing ugly strings such as "comment {verb}" to end users --- r2/r2/controllers/reddit_base.py | 2 +- r2/r2/lib/translation.py | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/r2/r2/controllers/reddit_base.py b/r2/r2/controllers/reddit_base.py index 7a6ddc447..be0de1183 100644 --- a/r2/r2/controllers/reddit_base.py +++ b/r2/r2/controllers/reddit_base.py @@ -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: diff --git a/r2/r2/lib/translation.py b/r2/r2/lib/translation.py index 9c3e9546e..73ae69a48 100644 --- a/r2/r2/lib/translation.py +++ b/r2/r2/lib/translation.py @@ -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)