diff --git a/c3l_membership/views.py b/c3l_membership/views.py --- a/c3l_membership/views.py +++ b/c3l_membership/views.py @@ -2,28 +2,44 @@ import re import subprocess from datetime import date -from flask import Blueprint, current_app, render_template, request +from flask import Blueprint, current_app, g, render_template, request +from flask_babel import gettext from flask_weasyprint import HTML, render_pdf from .forms import MembershipForm -root_page = Blueprint("root", __name__) +root_page = Blueprint("root", __name__, url_prefix="/") xml_template = "{name}{birthday:%d.%m.%Y}
{address}
{username}{email}{status}{voting}
" +@root_page.url_defaults +def add_lang_code(endpoint, values): + values.setdefault("lang_code", g.lang_code) + + +@root_page.url_value_preprocessor +def pull_lang_code(endpoint, values): + lang_code = values.pop("lang_code") + if lang_code != "favicon.ico": + g.lang_code = lang_code + + @root_page.route("/", methods=("GET", "POST")) def index(): form = MembershipForm() - choices = [("cash", "by cash"), ("wire transfer", "by wire transfer")] + choices = [ + ("cash", gettext("by cash")), + ("wire transfer", gettext("by wire transfer")), + ] for k, v in ( - ("DIGICASH_ENABLED", ("digicash", "by DigiCash")), - ("BITCOIN_ENABLED", ("bitcoin", "by bitcoin")), - ("ETHEREUM_ENABLED", ("ethereum", "by ethereum")), - ("MONERO_ENABLED", ("monero", "by monero")), - ("ZCASH_ENABLED", ("zcash", "by zcash")), + ("DIGICASH_ENABLED", ("digicash", gettext("by DigiCash"))), + ("BITCOIN_ENABLED", ("bitcoin", gettext("by bitcoin"))), + ("ETHEREUM_ENABLED", ("ethereum", gettext("by ethereum"))), + ("MONERO_ENABLED", ("monero", gettext("by monero"))), + ("ZCASH_ENABLED", ("zcash", gettext("by zcash"))), ): if current_app.config[k]: choices.append(v)