summaryrefslogtreecommitdiff
path: root/talerbank/jinja2.py
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2021-04-22 15:49:16 +0200
committerFlorian Dold <florian@dold.me>2021-04-22 15:50:23 +0200
commit51f25b62eb6447a48c139e04ea73e8fe811227a4 (patch)
tree9b6b4b55f6be196dfb1b9f0fa8963a74cb90a6b8 /talerbank/jinja2.py
parent8663a5a15b8f9d57757f70fa16e2a7460e9056ee (diff)
downloadbank-51f25b62eb6447a48c139e04ea73e8fe811227a4.tar.gz
bank-51f25b62eb6447a48c139e04ea73e8fe811227a4.tar.bz2
bank-51f25b62eb6447a48c139e04ea73e8fe811227a4.zip
Use same base template as merchant demos.
Diffstat (limited to 'talerbank/jinja2.py')
-rw-r--r--talerbank/jinja2.py61
1 files changed, 48 insertions, 13 deletions
diff --git a/talerbank/jinja2.py b/talerbank/jinja2.py
index b26b984..a91cf3b 100644
--- a/talerbank/jinja2.py
+++ b/talerbank/jinja2.py
@@ -27,6 +27,8 @@ from django.urls import reverse, get_script_prefix
from django.conf import settings
from jinja2 import Environment
from django.utils.translation import gettext
+import markupsafe
+
##
# Check if a URL is absolute or not.
@@ -128,6 +130,7 @@ def tojson(x):
def amount_stringify(amount):
return amount.stringify(settings.TALER_DIGITS, pretty=True)
+
def get_locale(url):
parts = url.split('/', 2)
if (2 >= len(parts)):
@@ -136,20 +139,52 @@ def get_locale(url):
lang = parts[1]
return lang
+
+all_languages = {
+ "en": "English [en]",
+ "ar": "Arabic [ar]",
+ "zh_Hant": "Chinese [zh]",
+ "fr": "French [fr]",
+ "de": "German [de]",
+ "hi": "Hindi [hi]",
+ "it": "Italian [it]",
+ "ja": "Japanese [ja]",
+ "ko": "Korean [ko]",
+ "pt": "Portuguese [pt]",
+ "pt_BR": "Portuguese (Brazil) [pt_BR]",
+ "ru": "Russian [ru]",
+ "es": "Spanish [es]",
+ "sv": "Swedish [sv]",
+ "tr": "Turkish [tr]",
+}
+
+
+def context_processor(request):
+ def getlang():
+ return get_locale(request.path)
+
+ return dict(getlang=getlang)
+
+
def environment(**options):
env = Environment(**options)
- env.globals.update(
- {
- "static": static,
- "url": url,
- "settings_value": settings_value,
- "env": env_get,
- "is_valid_amount": is_valid_amount,
- "amount_stringify": amount_stringify,
- "tojson": tojson,
- "_": gettext,
- "get_locale": get_locale
-
- }
+
+ gettext_markup = lambda *args, **kwargs: markupsafe.Markup(
+ gettext(*args, **kwargs)
)
+
+ env.globals.update({
+ "static": static,
+ "url": url,
+ "settings_value": settings_value,
+ "env": env_get,
+ "is_valid_amount": is_valid_amount,
+ "amount_stringify": amount_stringify,
+ "tojson": tojson,
+ "_": gettext_markup,
+ "gettext": gettext_markup,
+ "get_locale": get_locale,
+ "getactive": lambda: "bank",
+ "all_languages": all_languages,
+ })
return env