summaryrefslogtreecommitdiff
path: root/talermerchantdemos/httpcommon
diff options
context:
space:
mode:
Diffstat (limited to 'talermerchantdemos/httpcommon')
-rw-r--r--talermerchantdemos/httpcommon/__init__.py28
1 files changed, 20 insertions, 8 deletions
diff --git a/talermerchantdemos/httpcommon/__init__.py b/talermerchantdemos/httpcommon/__init__.py
index d07fe69..650228d 100644
--- a/talermerchantdemos/httpcommon/__init__.py
+++ b/talermerchantdemos/httpcommon/__init__.py
@@ -4,7 +4,7 @@ from urllib.parse import urljoin
from flask import request
from datetime import datetime
import time
-
+from flask_babel import gettext
##
# Return a error response to the client.
@@ -32,19 +32,19 @@ def backend_post(backend_url, endpoint, json):
final_url, json=json, headers=headers
)
except requests.ConnectionError:
- err_abort(500, message="Could not establish connection to backend")
+ err_abort(500, message=gettext("Could not establish connection to backend"))
try:
response_json = resp.json()
except ValueError:
err_abort(
500,
- message="Could not parse response from backend",
+ message=gettext("Could not parse response from backend"),
status_code=resp.status_code
)
if resp.status_code != 200:
err_abort(
500,
- message="Backend returned error status",
+ message=gettext("Backend returned error status"),
json=response_json,
status_code=resp.status_code
)
@@ -68,21 +68,29 @@ def backend_get(backend_url, endpoint, params):
final_url, params=params, headers=headers
)
except requests.ConnectionError:
- err_abort(500, message="Could not establish connection to backend")
+ err_abort(500, message=gettext("Could not establish connection to backend"))
try:
response_json = resp.json()
except ValueError:
- err_abort(500, message="Could not parse response from backend")
+ err_abort(500, message=gettext("Could not parse response from backend"))
if resp.status_code != 200:
err_abort(
500,
- message="Backend returned error status",
+ message=gettext("Backend returned error status"),
json=response_json,
status_code=resp.status_code
)
print("Backend responds to {}: {}".format(final_url, str(response_json)))
return response_json
+def get_locale():
+ parts = request.path.split('/', 2)
+ if (2 >= len(parts)):
+ # Totally unexpected path format, do not localize
+ return "en"
+ lang = parts[1]
+ return lang
+
##
# Helper function used inside Jinja2 logic to create a links
# to the current page but in a different language. Used to
@@ -107,7 +115,11 @@ def self_localized(lang):
# @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))