From 4a4e4e4ae83d6ff3f09580238049e74444b01416 Mon Sep 17 00:00:00 2001 From: Jiyda Mint Moussa Date: Mon, 29 Apr 2013 00:01:30 +0300 Subject: [PATCH] Added rtl language support RTL languages like Arabic, Hebrew etc were displayed from left to right. I fixed this by adding a function to check whether the language of the locale is rtl and change the direction of the html in "base.html" accordingly. [Fixes #220] --- mediagoblin/templates/mediagoblin/base.html | 7 +++++-- mediagoblin/tools/template.py | 5 ++++- mediagoblin/tools/translate.py | 6 ++++++ 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html index 9c42a756..83bc65d4 100644 --- a/mediagoblin/templates/mediagoblin/base.html +++ b/mediagoblin/templates/mediagoblin/base.html @@ -16,11 +16,12 @@ # along with this program. If not, see . -#} + - + {% block title %}{{ app_config['html_title'] }}{% endblock %} @@ -48,6 +49,7 @@ {% endblock mediagoblin_head %} +
{% include 'mediagoblin/bits/body-start.html' %} {% block mediagoblin_body %} {% block mediagoblin_header %} @@ -133,5 +135,6 @@
{%- endblock mediagoblin_body %} {% include 'mediagoblin/bits/body-end.html' %} - + + diff --git a/mediagoblin/tools/template.py b/mediagoblin/tools/template.py index 54aeac92..5d320f75 100644 --- a/mediagoblin/tools/template.py +++ b/mediagoblin/tools/template.py @@ -26,7 +26,9 @@ from mediagoblin import mg_globals from mediagoblin import messages from mediagoblin import _version from mediagoblin.tools import common +from mediagoblin.tools.translate import is_rtl from mediagoblin.tools.translate import set_thread_locale +from mediagoblin.tools.translate import get_locale_from_request from mediagoblin.tools.pluginapi import get_hook_templates from mediagoblin.tools.timesince import timesince from mediagoblin.meddleware.csrf import render_csrf_form_token @@ -67,11 +69,12 @@ def get_jinja_env(template_loader, locale): # ... fetch all waiting messages and remove them from the queue # ... construct a grid of thumbnails or other media # ... have access to the global and app config + # ... determine if the language is rtl or ltr template_env.globals['fetch_messages'] = messages.fetch_messages template_env.globals['app_config'] = mg_globals.app_config template_env.globals['global_config'] = mg_globals.global_config template_env.globals['version'] = _version.__version__ - + template_env.globals['is_rtl'] = is_rtl(locale) template_env.filters['urlencode'] = url_quote_plus # add human readable fuzzy date time diff --git a/mediagoblin/tools/translate.py b/mediagoblin/tools/translate.py index b20e57d1..f55ce349 100644 --- a/mediagoblin/tools/translate.py +++ b/mediagoblin/tools/translate.py @@ -31,6 +31,12 @@ AVAILABLE_LOCALES = None TRANSLATIONS_PATH = pkg_resources.resource_filename( 'mediagoblin', 'i18n') +# Known RTL languages +KNOWN_RTL = set(["ar", "fa", "zh","he","iw","ja","ur","yi","ji"]) + +def is_rtl(lang): + """Returns true when the local language is right to left""" + return lang in KNOWN_RTL def set_available_locales(): """Set available locales for which we have translations""" -- 2.25.1