From 449f1d5765ffffcf2c708f4ccf6278e9c79081d0 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Sun, 11 Oct 2020 15:40:39 +0200 Subject: improve i18n for survey --- talermerchantdemos/survey/survey.py | 32 ++++++++++++++++------- talermerchantdemos/survey/templates/base.html.j2 | 4 +-- talermerchantdemos/survey/templates/error.html.j2 | 2 +- talermerchantdemos/survey/templates/index.html.j2 | 2 +- 4 files changed, 26 insertions(+), 14 deletions(-) (limited to 'talermerchantdemos/survey') diff --git a/talermerchantdemos/survey/survey.py b/talermerchantdemos/survey/survey.py index 140088d..38065f1 100644 --- a/talermerchantdemos/survey/survey.py +++ b/talermerchantdemos/survey/survey.py @@ -57,13 +57,11 @@ app.config.from_object(__name__) babel = Babel(app) INSTANCED_URL = urljoin(BACKEND_URL, f"instances/survey/") -print("Using translations from:") -print(list(babel.translation_directories)) +LOGGER.info("Using translations from:" + ':'.join(list(babel.translation_directories))) translations = [str(translation) for translation in babel.list_translations()] if not 'en' in translations: translations.append('en') -print("Operating with the following translations available:") -print(translations) +LOGGER.info("Operating with the following translations available: " + ' '.join(translations)) app.jinja_env.globals.update(self_localized=self_localized) @@ -110,10 +108,10 @@ def internal_error(e): return flask.render_template( "templates/error.html.j2", message=gettext("Internal error"), - stack=traceback.format_exc() + stack=traceback.format_exc(), + lang=get_locale() ) - ## # Serve the /favicon.ico requests. # @@ -133,7 +131,10 @@ def favicon(): # @param abort_status_code status code to return along the response. # @param params _kw_ arguments to passed verbatim to the templating engine. def err_abort(abort_status_code, **params): - t = flask.render_template("templates/error.html.j2", **params) + t = flask.render_template( + "templates/error.html.j2", + lang=get_locale(), + **params) flask.abort(flask.make_response(t, abort_status_code)) ## @@ -144,8 +145,8 @@ def err_abort(abort_status_code, **params): # @return the URL where to redirect the browser, in order # for the wallet to pick the tip up, or a error page # otherwise. -@app.route("/submit-survey", methods=["POST"]) -def submit_survey(): +@app.route("//submit-survey", methods=["POST"]) +def submit_survey(lang): tip_spec = dict( amount=CURRENCY + ":1.0", next_url=os.environ.get("TALER_ENV_URL_INTRO", "https://taler.net/"), @@ -177,4 +178,15 @@ def start(lang): @app.errorhandler(404) def handler(e): return flask.render_template( - "templates/error.html.j2", message=gettext("Page not found")) + "templates/error.html.j2", + message=gettext("Page not found"), + lang=get_locale() + ) + +@app.errorhandler(405) +def handler(e): + return flask.render_template( + "templates/error.html.j2", + message=gettext("HTTP method not allowed for this page"), + lang=get_locale() + ) diff --git a/talermerchantdemos/survey/templates/base.html.j2 b/talermerchantdemos/survey/templates/base.html.j2 index b6d1c62..1beb0d5 100644 --- a/talermerchantdemos/survey/templates/base.html.j2 +++ b/talermerchantdemos/survey/templates/base.html.j2 @@ -90,10 +90,10 @@
{% if lang != 'en' %} - English [en]
+ English [en]
{% endif %} {% if lang != 'de' %} - Deutsch [de]
+ Deutsch [de]
{% endif %} diff --git a/talermerchantdemos/survey/templates/error.html.j2 b/talermerchantdemos/survey/templates/error.html.j2 index ffc2e1f..844da08 100644 --- a/talermerchantdemos/survey/templates/error.html.j2 +++ b/talermerchantdemos/survey/templates/error.html.j2 @@ -6,7 +6,7 @@ {% if status_code %}

- {{ gettext ("The backend returned status code {code}.").format(code=status_code) }}. + {{ gettext ("The backend returned status code {code}.").format(code=status_code) }}

{% endif %} diff --git a/talermerchantdemos/survey/templates/index.html.j2 b/talermerchantdemos/survey/templates/index.html.j2 index 9c9df5b..3539bf8 100644 --- a/talermerchantdemos/survey/templates/index.html.j2 +++ b/talermerchantdemos/survey/templates/index.html.j2 @@ -8,7 +8,7 @@

-
+ {{ gettext("Which payment system do you prefer?") }}