aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mediagoblin/templates/mediagoblin/base.html10
-rw-r--r--mediagoblin/tools/template.py5
-rw-r--r--mediagoblin/tools/translate.py6
3 files changed, 17 insertions, 4 deletions
diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html
index e71f9d12..6d49ff47 100644
--- a/mediagoblin/templates/mediagoblin/base.html
+++ b/mediagoblin/templates/mediagoblin/base.html
@@ -16,10 +16,14 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-#}
<!doctype html>
+
<html
-{% block mediagoblin_html_tag %}
-{% endblock mediagoblin_html_tag %}
->
+ {% block mediagoblin_html_tag %}
+ {% endblock mediagoblin_html_tag %}
+ {% if is_rtl -%}
+ dir="rtl"
+ {%- endif -%}
+ >
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
diff --git a/mediagoblin/tools/template.py b/mediagoblin/tools/template.py
index fa290611..e5acdf45 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, hook_transform
from mediagoblin.tools.timesince import timesince
from mediagoblin.meddleware.csrf import render_csrf_form_token
@@ -72,12 +74,13 @@ 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['auth'] = mg_globals.app.auth
-
+ 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"""