Changeset - 83d7cbad018a
[Not reviewed]
i18n
0 5 0
Dennis Fink - 3 years ago 2022-01-17 11:39:30
dennis.fink@c3l.lu
Add babel command to flask cli
5 files changed with 90 insertions and 48 deletions:
0 comments (0 inline, 0 general)
c3l_membership/__init__.py
Show inline comments
 
import base64
 
import json
 
import os.path
 
import secrets
 
import subprocess
 

	
 
from flask import Flask, g, redirect, request, url_for
 
from flask.cli import AppGroup
 
from flask_babel import Babel
 
from flask_qrcode import QRcode
 

	
 
config_file = os.path.abspath("/etc/membership.json")
 

	
 
qrcode = QRcode()
 
babel = Babel()
 
babel_cli = AppGroup("babel")
 

	
 

	
 
def create_app():
 

	
 
    app = Flask(__name__)
 

	
 
    try:
 
        app.config.from_file(config_file, load=json.load)
 
    except FileNotFoundError:
 
        pass
 

	
 
    qrcode.init_app(app)
 
    babel.init_app(app)
 

	
 
    _default_secret_key = base64.b64encode(secrets.token_bytes()).decode("utf-8")
 
    app.config["SECRET_KEY"] = os.environ.get("SECRET_KEY", _default_secret_key)
 
    app.config["LANGUAGES"] = ["en", "de", "fr", "lb"]
 

	
 
    app.config.setdefault("SUPPORTING_FEE", 40)
 
    app.config.setdefault("REGULAR_FEE", 120)
 

	
 
    app.config.setdefault("DIGICASH_ENABLED", True)
 
    app.config.setdefault("BITCOIN_ENABLED", True)
 
    app.config.setdefault("ETHEREUM_ENABLED", True)
 
    app.config.setdefault("MONERO_ENABLED", True)
 
    app.config.setdefault("ZCASH_ENABLED", True)
 

	
 
    app.config.setdefault(
 
        "BITCOIN_CONVERSION_SCRIPT", "/usr/local/share/btc/BTC_Membership.pl"
 
    )
 
    app.config.setdefault(
 
        "ETHEREUM_CONVERSION_SCRIPT", "/usr/local/share/eth/ETH_Membership.pl"
 
    )
 
    app.config.setdefault(
 
        "MONERO_CONVERSION_SCRIPT", "/usr/local/share/xmr/XMR_Membership.pl"
 
    )
 
    app.config.setdefault(
 
        "ZCASH_CONVERSION_SCRIPT", "/usr/local/share/zcash/ZCASH_Membership.pl"
 
    )
 

	
 
    @babel.localeselector
 
    def get_locale():
 
        if not g.get("lang_code", None):
 
            g.lang_code = request.accept_languages.best_match(app.config["LANGUAGES"])
 
        return g.lang_code
 

	
 
    from .views import root_page
 

	
 
    app.register_blueprint(root_page)
 

	
 
    @app.route("/")
 
    def home():
 
        g.lang_code = request.accept_languages.best_match(app.config["LANGUAGES"])
 
        return redirect(url_for("root.index"))
 

	
 
    app.cli.add_command(babel_cli)
 

	
 
    return app
 

	
 

	
 
@babel_cli.command("extract")
 
def babel_extract():
 
    subprocess.run(
 
        [
 
            "pybabel",
 
            "extract",
 
            "-F",
 
            "babel.cfg",
 
            "-k",
 
            "lazy_gettext",
 
            "-o",
 
            "messages.pot",
 
            ".",
 
        ]
 
    )
 

	
 

	
 
@babel_cli.command("update")
 
def babel_update():
 
    subprocess.run(
 
        ["pybabel", "update", "-i", "messages.pot", "-d", "c3l_membership/translations"]
 
    )
 

	
 

	
 
@babel_cli.command("compile")
 
def babel_compile():
 
    subprocess.run(["pybabel", "compile", "-d", "c3l_membership/translations"])
 

	
 

	
 
app = create_app()
c3l_membership/translations/de/LC_MESSAGES/messages.po
Show inline comments
 
# German translations for PROJECT.
 
# Copyright (C) 2022 ORGANIZATION
 
# This file is distributed under the same license as the PROJECT project.
 
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
 
#
 
msgid ""
 
msgstr ""
 
"Project-Id-Version: PROJECT VERSION\n"
 
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
 
"POT-Creation-Date: 2022-01-17 11:29+0100\n"
 
"POT-Creation-Date: 2022-01-17 11:38+0100\n"
 
"PO-Revision-Date: 2022-01-17 11:30+0100\n"
 
"Last-Translator: Dennis Fink <dennis.fink@c3l.lu>\n"
 
"Language: de\n"
 
"Language-Team: de <LL@li.org>\n"
 
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
 
"MIME-Version: 1.0\n"
 
"Content-Type: text/plain; charset=utf-8\n"
 
"Content-Transfer-Encoding: 8bit\n"
 
"Generated-By: Babel 2.9.1\n"
 
"X-Generator: Poedit 3.0\n"
 

	
 
#: c3l_membership/forms.py:12
 
msgid "Username"
 
msgstr "Benutzername"
 

	
 
#: c3l_membership/forms.py:14 c3l_membership/forms.py:20
 
#: c3l_membership/forms.py:25
 
msgid "This field is required!"
 
msgstr "Dieses Feld ist erforderlich!"
 

	
 
#: c3l_membership/forms.py:19
 
msgid "E-Mail"
 
msgstr "E-Mail"
 

	
 
#: c3l_membership/forms.py:23
 
msgid "Full Name"
 
msgstr "Ganzer Name"
 

	
 
#: c3l_membership/forms.py:31
 
msgid "Membership Plan"
 
msgstr "Mitgliedschaftsplan"
 

	
 
#: c3l_membership/forms.py:32 c3l_membership/forms.py:63
 
msgid "Please select one of the options!"
 
msgstr "Bitte wählen Sie eine der Optionen!"
 

	
 
#: c3l_membership/forms.py:36
 
msgid ""
 
"Regular membership - Membership with voting rights on the general assembly."
 
"Regular membership - Membership with voting rights on the general "
 
"assembly."
 
msgstr ""
 
"Ordentliche Mitgliedschaft - Mitgliedschaft mit Stimmrecht in der "
 
"Generalversammlung."
 

	
 
#: c3l_membership/forms.py:42
 
msgid ""
 
"Supporting membership - Membership without voting rights on the general "
 
"assembly."
 
msgstr ""
 
"Unterstützende Mitgliedschaft - Mitgliedschaft ohne Stimmrecht in der "
 
"Generalversammlung."
 

	
 
#: c3l_membership/forms.py:50
 
msgid "I am a student and would like to have the reduced membership fees."
 
msgstr ""
 
"Ich bin Student und möchte die ermäßigten Mitgliedsbeiträge in Anspruch "
 
"nehmen."
 

	
 
#: c3l_membership/forms.py:56
 
msgid ""
 
"I am a starving hacker and cannot afford the membership! (Please get in touch "
 
"with us at info@c3l.lu before filling out this membership form)"
 
"I am a starving hacker and cannot afford the membership! (Please get in "
 
"touch with us at info@c3l.lu before filling out this membership form)"
 
msgstr ""
 
"Ich bin ein \"starving\" Hacker und kann mir die Mitgliedschaft nicht "
 
"leisten! (Bitte setzen Sie sich mit uns unter info@c3l.lu in Verbindung, "
 
"bevor Sie dieses Beitrittsformular ausfüllen)"
 

	
 
#: c3l_membership/forms.py:62
 
msgid "Payment Options"
 
msgstr "Zahlungsoptionen"
 

	
 
#: c3l_membership/forms.py:66
 
msgid "Birthday"
 
msgstr "Geburtstag"
 

	
 
#: c3l_membership/forms.py:69
 
msgid "Nr., Street"
 
msgstr "N°, Strasse"
 

	
 
#: c3l_membership/forms.py:73
 
msgid "Postal Code"
 
msgstr "Postleitzahl"
 

	
 
#: c3l_membership/forms.py:78
 
msgid "City/Town"
 
msgstr "Ort"
 

	
 
#: c3l_membership/forms.py:83
 
msgid "State/County/Province"
 
msgstr "Staat/Landkreis/Provinz"
 

	
 
#: c3l_membership/forms.py:88
 
msgid "Country"
 
msgstr "Land"
 

	
 
#: c3l_membership/forms.py:93
 
msgid ""
 
"By submitting this membership application, you agree to have read and "
 
"understood the <a href=\"http://statutes.c3l.lu\">statutes of the Chaos "
 
"Computer Club Lëtzebuerg A.S.B.L.</a>."
 
msgstr ""
 
"Mit dem Absenden dieses Mitgliedsantrags erklären Sie, die <a href=\"http://"
 
"statutes.c3l.lu\">Satzung des Chaos Computer Club Lëtzebuerg A.S.B.L.</a> "
 
"gelesen und verstanden zu haben."
 
"Mit dem Absenden dieses Mitgliedsantrags erklären Sie, die <a "
 
"href=\"http://statutes.c3l.lu\">Satzung des Chaos Computer Club "
 
"Lëtzebuerg A.S.B.L.</a> gelesen und verstanden zu haben."
 

	
 
#: c3l_membership/forms.py:100
 
msgid ""
 
"I am under 18 years of age and have the approval of my legal representative."
 
"I am under 18 years of age and have the approval of my legal "
 
"representative."
 
msgstr "Ich bin unter 18 Jahre alt und habe die Zustimmung meines Vormunds."
 

	
 
#: c3l_membership/forms.py:104
 
msgid "Become a member"
 
msgstr "Mitglied werden"
 

	
 
#: c3l_membership/views.py:31
 
msgid "by cash"
 
msgstr "mit Bargeld"
 

	
 
#: c3l_membership/views.py:32
 
msgid "by wire transfer"
 
msgstr "per Überweisung"
 

	
 
#: c3l_membership/views.py:36
 
msgid "by DigiCash"
 
msgstr "per DigiCash"
 

	
 
#: c3l_membership/views.py:37
 
msgid "by bitcoin"
 
msgstr "per Bitcoin"
 

	
 
#: c3l_membership/views.py:38
 
msgid "by ethereum"
 
msgstr "per Ethereum"
 

	
 
#: c3l_membership/views.py:39
 
msgid "by monero"
 
msgstr "per Monero"
 

	
 
#: c3l_membership/views.py:40
 
msgid "by zcash"
 
msgstr "per Zcash"
 

	
 
#: c3l_membership/templates/index.html:6
 
msgid "C3L Membership Application"
 
msgstr "C3L Beitrittsformular"
 

	
 
#: c3l_membership/templates/index.html:40
 
#: c3l_membership/templates/member.html:16
 
msgid "Membership Application"
 
msgstr "Beitrittsformular"
 

	
 
#: c3l_membership/templates/index.html:41
 
msgid "How to use this form"
 
msgstr "Wie dieses Forumaler verwendet wird"
 

	
 
#: c3l_membership/templates/index.html:42
 
msgid ""
 
"Fill out this form and click on \"Become a member\". Afterwards you will be "
 
"presented with a PDF, which you have to send to info@c3l.lu or bring it to "
 
"one of our next events. Print it or save it to your local hardware, because "
 
"we don't save a copy on our servers for data protection reasons!"
 
"Fill out this form and click on \"Become a member\". Afterwards you will "
 
"be presented with a PDF, which you have to send to info@c3l.lu or bring "
 
"it to one of our next events. Print it or save it to your local hardware,"
 
" because we don't save a copy on our servers for data protection reasons!"
 
msgstr ""
 
"Füllen Sie dieses Formular aus und klicken Sie auf \"Mitglied werden\". "
 
"Danach erhalten Sie eine PDF-Datei, welches Sie an info@c3l.lu schicken oder "
 
"zu einer unserer nächsten Veranstaltungen mitbringen müssen. Drucken Sie es "
 
"aus oder speichern Sie es auf Ihrer lokalen Hardware, da wir aus "
 
"Danach erhalten Sie eine PDF-Datei, welches Sie an info@c3l.lu schicken "
 
"oder zu einer unserer nächsten Veranstaltungen mitbringen müssen. Drucken"
 
" Sie es aus oder speichern Sie es auf Ihrer lokalen Hardware, da wir aus "
 
"Datenschutzgründen keine Kopie auf unseren Servern speichern!"
 

	
 
#: c3l_membership/templates/index.html:53
 
msgid "Required information"
 
msgstr "Erforderliche Informationen"
 

	
 
#: c3l_membership/templates/index.html:94
 
msgid "What's difference between the different membership options?"
 
msgstr ""
 
"Was ist der Unterschied zwischen den verschiedenen Mitgliedschaftsoptionen?"
 
"Was ist der Unterschied zwischen den verschiedenen "
 
"Mitgliedschaftsoptionen?"
 

	
 
#: c3l_membership/templates/index.html:95
 
msgid "All the options include to following benefits:"
 
msgstr "Alle Optionen bieten die folgenden Vorteile:"
 

	
 
#: c3l_membership/templates/index.html:97
 
msgid ""
 
"Access to the <a href=\"https://wiki.c3l.lu/doku.php?id=organization:"
 
"membership#benefits\">services</a> run by us"
 
"Access to the <a "
 
"href=\"https://wiki.c3l.lu/doku.php?id=organization:membership#benefits\">services</a>"
 
" run by us"
 
msgstr ""
 
"Zugang zu den von uns betriebenen <a href=\"https://wiki.c3l.lu/doku.php?"
 
"id=organization:membership#benefits\">Dienstleistungen</a>"
 
"Zugang zu den von uns betriebenen <a "
 
"href=\"https://wiki.c3l.lu/doku.php?id=organization:membership#benefits\">Dienstleistungen</a>"
 

	
 
#: c3l_membership/templates/index.html:98
 
msgid ""
 
"Access to our <a href=\"https://wiki.c3l.lu/doku.php?id=chaosstuff:bootstrap"
 
"\">hackerspace: ChaosStuff</a>"
 
"Access to our <a "
 
"href=\"https://wiki.c3l.lu/doku.php?id=chaosstuff:bootstrap\">hackerspace:"
 
" ChaosStuff</a>"
 
msgstr ""
 
"Zugang zu unserem <a href=\"https://wiki.c3l.lu/doku.php?id=chaosstuff:"
 
"bootstrap\">Hackerspace: ChaosStuff</a>"
 
"Zugang zu unserem <a "
 
"href=\"https://wiki.c3l.lu/doku.php?id=chaosstuff:bootstrap\">Hackerspace:"
 
" ChaosStuff</a>"
 

	
 
#: c3l_membership/templates/index.html:100
 
msgid "Becoming a regular member gives you these additional benefits:"
 
msgstr "Als ordentliches Mitglied erhalten Sie diese zusätzlichen Vorteile:"
 

	
 
#: c3l_membership/templates/index.html:102
 
msgid "Voting rights on general assemblys"
 
msgstr "Stimmrecht in Generalversammlungen"
 

	
 
#: c3l_membership/templates/index.html:103
 
msgid "Access to our internal mailinglist"
 
msgstr "Zugang zu unserer internen Mailingliste"
 

	
 
#: c3l_membership/templates/index.html:105
 
msgid ""
 
"You can read more on the membership <a href=\"https://wiki.c3l.lu/doku.php?"
 
"id=organization:membership\">here</a>."
 
"You can read more on the membership <a "
 
"href=\"https://wiki.c3l.lu/doku.php?id=organization:membership\">here</a>."
 
msgstr ""
 
"Mehr über die Mitgliedschaft können Sie <a href=\"https://wiki.c3l.lu/doku."
 
"php?id=organization:membership\">hier</a> lesen."
 
"Mehr über die Mitgliedschaft können Sie <a "
 
"href=\"https://wiki.c3l.lu/doku.php?id=organization:membership\">hier</a>"
 
" lesen."
 

	
 
#: c3l_membership/templates/index.html:106
 
msgid "What are the membership fees?"
 
msgstr "Wie hoch sind die Mitgliedsbeiträge?"
 

	
 
#: c3l_membership/templates/index.html:107
 
#, python-format
 
msgid ""
 
"The membership fee for the regular membership is %(regular_fee)s€ per year. "
 
"The membership fee for the supporting membership is %(supporting_fee)s€ per "
 
"year. If you are a student, all membership fees are %(supporting_fee)s€ per "
 
"year. For that please select the corresponding option."
 
"The membership fee for the regular membership is %(regular_fee)s€ per "
 
"year. The membership fee for the supporting membership is "
 
"%(supporting_fee)s€ per year. If you are a student, all membership fees "
 
"are %(supporting_fee)s€ per year. For that please select the "
 
"corresponding option."
 
msgstr ""
 
"Der Mitgliedsbeitrag für die reguläre Mitgliedschaft beträgt %(regular_fee)s€ "
 
"pro Jahr. Der Mitgliedsbeitrag für die Unterstützende Mitgliedschaft beträgt "
 
"%(supporting_fee)s€ pro Jahr. Wenn Sie Student sind, sind alle "
 
"Mitgliedsbeiträge %(supporting_fee)s€ pro Jahr. Bitte wählen Sie dazu die "
 
"entsprechende Option."
 
"Der Mitgliedsbeitrag für die reguläre Mitgliedschaft beträgt "
 
"%(regular_fee)s€ pro Jahr. Der Mitgliedsbeitrag für die Unterstützende "
 
"Mitgliedschaft beträgt %(supporting_fee)s€ pro Jahr. Wenn Sie Student "
 
"sind, sind alle Mitgliedsbeiträge %(supporting_fee)s€ pro Jahr. Bitte "
 
"wählen Sie dazu die entsprechende Option."
 

	
 
#: c3l_membership/templates/index.html:108
 
msgid "I cannot afford the membership?"
 
msgstr "Ich kann mir die Mitgliedschaft nicht leisten?"
 

	
 
#: c3l_membership/templates/index.html:109
 
msgid ""
 
"If you cannot afford the membership, please contact us via info@c3l.lu first, "
 
"before filling out the membership form. We will try to find a solution "
 
"together."
 
"If you cannot afford the membership, please contact us via info@c3l.lu "
 
"first, before filling out the membership form. We will try to find a "
 
"solution together."
 
msgstr ""
 
"Wenn Sie sich die Mitgliedschaft nicht leisten können, kontaktieren Sie uns "
 
"bitte zuerst über info@c3l.lu, bevor Sie das Beitrittsformular ausfüllen. Wir "
 
"werden versuchen, gemeinsam eine Lösung zu finden."
 
"Wenn Sie sich die Mitgliedschaft nicht leisten können, kontaktieren Sie "
 
"uns bitte zuerst über info@c3l.lu, bevor Sie das Beitrittsformular "
 
"ausfüllen. Wir werden versuchen, gemeinsam eine Lösung zu finden."
 

	
 
#: c3l_membership/templates/index.html:122
 
msgid "Additional information"
 
msgstr "Zusätzliche Informationen"
 

	
 
#: c3l_membership/templates/member.html:4
 
#, python-format
 
msgid "Membership Application - %(username)s"
 
msgstr "Beitrittsformular - %(username)s"
 

	
 
#: c3l_membership/templates/member.html:19
 
msgid "Username:"
 
msgstr "Benutzername:"
 

	
 
#: c3l_membership/templates/member.html:23
 
msgid "E-Mail:"
 
msgstr "E-Mail:"
 

	
 
#: c3l_membership/templates/member.html:27
 
msgid "Full Name:"
 
msgstr "Ganzer Name:"
 

	
 
#: c3l_membership/templates/member.html:31
 
msgid "Birthday:"
 
msgstr "Geburtstag:"
 

	
 
#: c3l_membership/templates/member.html:35
 
msgid "Street:"
 
msgstr "Straße:"
 

	
 
#: c3l_membership/templates/member.html:36
 
#: c3l_membership/templates/member.html:40
 
#: c3l_membership/templates/member.html:44
 
#: c3l_membership/templates/member.html:48
 
#: c3l_membership/templates/member.html:52
 
msgid "Not specified"
 
msgstr "Keine Angaben"
 

	
 
#: c3l_membership/templates/member.html:39
 
msgid "ZIP-Code:"
 
msgstr "Postleitzahl:"
 

	
 
#: c3l_membership/templates/member.html:43
 
msgid "City:"
 
msgstr "Stadt:"
 

	
 
#: c3l_membership/templates/member.html:47
 
msgid "State/County/Province:"
 
msgstr "Staat/Landkreis/Provinz:"
 

	
 
#: c3l_membership/templates/member.html:51
 
msgid "Country:"
 
msgstr "Land:"
 

	
 
#: c3l_membership/templates/member.html:55
 
msgid "Membership Plan:"
 
msgstr "Mitgliedschaftsplan:"
 

	
 
#: c3l_membership/templates/member.html:59
 
msgid "Student:"
 
msgstr "Student:"
 

	
 
#: c3l_membership/templates/member.html:60
 
#: c3l_membership/templates/member.html:64
 
#: c3l_membership/templates/member.html:72
 
#: c3l_membership/templates/member.html:76
 
msgid "Yes"
 
msgstr "Ja"
 

	
 
#: c3l_membership/templates/member.html:60
 
#: c3l_membership/templates/member.html:64
 
#: c3l_membership/templates/member.html:72
 
#: c3l_membership/templates/member.html:76
 
msgid "No"
 
msgstr "Nein"
 

	
 
#: c3l_membership/templates/member.html:63
 
msgid "Starving:"
 
msgstr "Starving:"
 

	
 
#: c3l_membership/templates/member.html:67
 
msgid "Payment:"
 
msgstr "Bezahlung:"
 

	
 
#: c3l_membership/templates/member.html:71
 
msgid "Agreed to Terms &amp; Conditions:"
 
msgstr "Den Allgemeinen Geschäftsbedingungen zugestimmt:"
 

	
 
#: c3l_membership/templates/member.html:75
 
msgid "Minor Member:"
 
msgstr "Minderjähriges Mitglied:"
 

	
 
#: c3l_membership/templates/member.html:79
 
msgid "Send this document to the Chaos Computer Club Lëtzebuerg!"
 
msgstr "Senden Sie dieses Dokument an den Chaos Computer Club Lëtzebuerg!"
 

	
 
#: c3l_membership/templates/member.html:82
 
msgid "Account Holder:"
 
msgstr "Kontoinhaber:"
 

	
 
#: c3l_membership/templates/member.html:85
 
#: c3l_membership/templates/member.html:96
 
#: c3l_membership/templates/member.html:109
 
#: c3l_membership/templates/member.html:122
 
#: c3l_membership/templates/member.html:135
 
msgid "Message:"
 
msgstr "Mitteilung:"
 

	
 
#: c3l_membership/templates/member.html:86
 
#, python-format
 
msgid "Amount: %(price)s€"
 
msgstr "Betrag: %(price)s€"
 

	
 
#: c3l_membership/templates/member.html:89
 
#, python-format
 
msgid "Please bring %(price)s€ with you the next time you meet us!"
 
msgstr "Bitte bringen Sie %(price)s€ mit, wenn Sie uns das nächste Mal treffen!"
 

	
 
#: c3l_membership/templates/member.html:94
 
#: c3l_membership/templates/member.html:107
 
#: c3l_membership/templates/member.html:120
 
#: c3l_membership/templates/member.html:133
 
msgid "Address:"
 
msgstr "Addresse:"
 

	
 
#: c3l_membership/templates/member.html:95
 
#: c3l_membership/templates/member.html:108
 
#: c3l_membership/templates/member.html:121
 
#: c3l_membership/templates/member.html:134
 
msgid "Label:"
 
msgstr "Bezeichnung:"
 

	
 
#: c3l_membership/templates/member.html:97
 
#: c3l_membership/templates/member.html:110
 
#: c3l_membership/templates/member.html:123
 
#: c3l_membership/templates/member.html:136
 
msgid "Amount:"
 
msgstr "Betrag:"
 

	
 
#: c3l_membership/templates/member.html:145
 
msgid "Pay with digicash!"
 
msgstr "Bezahle mit DigiCash!"
 

	
 
#: c3l_membership/templates/member.html:150
 
msgid "Luxembourg, the"
 
msgstr "Luxemburg, der"
 

	
 
#: c3l_membership/templates/member.html:152
 
msgid "Signature of your legal representative"
 
msgstr "Unterschrift des Vormundes"
 

	
 
#: c3l_membership/templates/member.html:152
 
msgid "Your signature"
 
msgstr "Ihre Unterschrift"
 

	
c3l_membership/translations/fr/LC_MESSAGES/messages.po
Show inline comments
 
# French translations for PROJECT.
 
# Copyright (C) 2022 ORGANIZATION
 
# This file is distributed under the same license as the PROJECT project.
 
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
 
#
 
msgid ""
 
msgstr ""
 
"Project-Id-Version: PROJECT VERSION\n"
 
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
 
"POT-Creation-Date: 2022-01-17 11:29+0100\n"
 
"POT-Creation-Date: 2022-01-17 11:38+0100\n"
 
"PO-Revision-Date: 2022-01-16 22:17+0100\n"
 
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 
"Language: fr\n"
 
"Language-Team: fr <LL@li.org>\n"
 
"Plural-Forms: nplurals=2; plural=(n > 1)\n"
 
"MIME-Version: 1.0\n"
 
"Content-Type: text/plain; charset=utf-8\n"
 
"Content-Transfer-Encoding: 8bit\n"
 
"Generated-By: Babel 2.9.1\n"
 

	
 
#: c3l_membership/forms.py:12
 
msgid "Username"
 
msgstr ""
 

	
 
#: c3l_membership/forms.py:14 c3l_membership/forms.py:20
 
#: c3l_membership/forms.py:25
 
msgid "This field is required!"
 
msgstr ""
 

	
 
#: c3l_membership/forms.py:19
 
msgid "E-Mail"
 
msgstr ""
 

	
 
#: c3l_membership/forms.py:23
 
msgid "Full Name"
 
msgstr ""
 

	
 
#: c3l_membership/forms.py:31
 
msgid "Membership Plan"
 
msgstr ""
 

	
 
#: c3l_membership/forms.py:32 c3l_membership/forms.py:63
 
msgid "Please select one of the options!"
 
msgstr ""
 

	
 
#: c3l_membership/forms.py:36
 
msgid ""
 
"Regular membership - Membership with voting rights on the general "
 
"assembly."
 
msgstr ""
 

	
 
#: c3l_membership/forms.py:42
 
msgid ""
 
"Supporting membership - Membership without voting rights on the general "
 
"assembly."
 
msgstr ""
 

	
 
#: c3l_membership/forms.py:50
 
msgid "I am a student and would like to have the reduced membership fees."
 
msgstr ""
 

	
 
#: c3l_membership/forms.py:56
 
msgid ""
 
"I am a starving hacker and cannot afford the membership! (Please get in "
 
"touch with us at info@c3l.lu before filling out this membership form)"
 
msgstr ""
 

	
 
#: c3l_membership/forms.py:62
 
msgid "Payment Options"
 
msgstr ""
 

	
 
#: c3l_membership/forms.py:66
 
msgid "Birthday"
 
msgstr ""
 

	
 
#: c3l_membership/forms.py:69
 
msgid "Nr., Street"
 
msgstr ""
 

	
 
#: c3l_membership/forms.py:73
 
msgid "Postal Code"
 
msgstr ""
 

	
 
#: c3l_membership/forms.py:78
 
msgid "City/Town"
 
msgstr ""
 

	
 
#: c3l_membership/forms.py:83
 
msgid "State/County/Province"
 
msgstr ""
 

	
 
#: c3l_membership/forms.py:88
 
msgid "Country"
 
msgstr ""
 

	
 
#: c3l_membership/forms.py:93
 
msgid ""
 
"By submitting this membership application, you agree to have read and "
 
"understood the <a href=\"http://statutes.c3l.lu\">statutes of the Chaos "
 
"Computer Club Lëtzebuerg A.S.B.L.</a>."
 
msgstr ""
 

	
 
#: c3l_membership/forms.py:100
 
msgid ""
 
"I am under 18 years of age and have the approval of my legal "
 
"representative."
c3l_membership/translations/lb/LC_MESSAGES/messages.po
Show inline comments
 
# Luxembourgish translations for PROJECT.
 
# Copyright (C) 2022 ORGANIZATION
 
# This file is distributed under the same license as the PROJECT project.
 
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
 
#
 
msgid ""
 
msgstr ""
 
"Project-Id-Version: PROJECT VERSION\n"
 
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
 
"POT-Creation-Date: 2022-01-17 11:29+0100\n"
 
"POT-Creation-Date: 2022-01-17 11:38+0100\n"
 
"PO-Revision-Date: 2022-01-16 22:17+0100\n"
 
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 
"Language: lb\n"
 
"Language-Team: lb <LL@li.org>\n"
 
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
 
"MIME-Version: 1.0\n"
 
"Content-Type: text/plain; charset=utf-8\n"
 
"Content-Transfer-Encoding: 8bit\n"
 
"Generated-By: Babel 2.9.1\n"
 

	
 
#: c3l_membership/forms.py:12
 
msgid "Username"
 
msgstr ""
 

	
 
#: c3l_membership/forms.py:14 c3l_membership/forms.py:20
 
#: c3l_membership/forms.py:25
 
msgid "This field is required!"
 
msgstr ""
 

	
 
#: c3l_membership/forms.py:19
 
msgid "E-Mail"
 
msgstr ""
 

	
 
#: c3l_membership/forms.py:23
 
msgid "Full Name"
 
msgstr ""
 

	
 
#: c3l_membership/forms.py:31
 
msgid "Membership Plan"
 
msgstr ""
 

	
 
#: c3l_membership/forms.py:32 c3l_membership/forms.py:63
 
msgid "Please select one of the options!"
 
msgstr ""
 

	
 
#: c3l_membership/forms.py:36
 
msgid ""
 
"Regular membership - Membership with voting rights on the general "
 
"assembly."
 
msgstr ""
 

	
 
#: c3l_membership/forms.py:42
 
msgid ""
 
"Supporting membership - Membership without voting rights on the general "
 
"assembly."
 
msgstr ""
 

	
 
#: c3l_membership/forms.py:50
 
msgid "I am a student and would like to have the reduced membership fees."
 
msgstr ""
 

	
 
#: c3l_membership/forms.py:56
 
msgid ""
 
"I am a starving hacker and cannot afford the membership! (Please get in "
 
"touch with us at info@c3l.lu before filling out this membership form)"
 
msgstr ""
 

	
 
#: c3l_membership/forms.py:62
 
msgid "Payment Options"
 
msgstr ""
 

	
 
#: c3l_membership/forms.py:66
 
msgid "Birthday"
 
msgstr ""
 

	
 
#: c3l_membership/forms.py:69
 
msgid "Nr., Street"
 
msgstr ""
 

	
 
#: c3l_membership/forms.py:73
 
msgid "Postal Code"
 
msgstr ""
 

	
 
#: c3l_membership/forms.py:78
 
msgid "City/Town"
 
msgstr ""
 

	
 
#: c3l_membership/forms.py:83
 
msgid "State/County/Province"
 
msgstr ""
 

	
 
#: c3l_membership/forms.py:88
 
msgid "Country"
 
msgstr ""
 

	
 
#: c3l_membership/forms.py:93
 
msgid ""
 
"By submitting this membership application, you agree to have read and "
 
"understood the <a href=\"http://statutes.c3l.lu\">statutes of the Chaos "
 
"Computer Club Lëtzebuerg A.S.B.L.</a>."
 
msgstr ""
 

	
 
#: c3l_membership/forms.py:100
 
msgid ""
 
"I am under 18 years of age and have the approval of my legal "
 
"representative."
messages.pot
Show inline comments
 
# Translations template for PROJECT.
 
# Copyright (C) 2022 ORGANIZATION
 
# This file is distributed under the same license as the PROJECT project.
 
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
 
#
 
#, fuzzy
 
msgid ""
 
msgstr ""
 
"Project-Id-Version: PROJECT VERSION\n"
 
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
 
"POT-Creation-Date: 2022-01-17 11:29+0100\n"
 
"POT-Creation-Date: 2022-01-17 11:38+0100\n"
 
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 
"Language-Team: LANGUAGE <LL@li.org>\n"
 
"MIME-Version: 1.0\n"
 
"Content-Type: text/plain; charset=utf-8\n"
 
"Content-Transfer-Encoding: 8bit\n"
 
"Generated-By: Babel 2.9.1\n"
 

	
 
#: c3l_membership/forms.py:12
 
msgid "Username"
 
msgstr ""
 

	
 
#: c3l_membership/forms.py:14 c3l_membership/forms.py:20
 
#: c3l_membership/forms.py:25
 
msgid "This field is required!"
 
msgstr ""
 

	
 
#: c3l_membership/forms.py:19
 
msgid "E-Mail"
 
msgstr ""
 

	
 
#: c3l_membership/forms.py:23
 
msgid "Full Name"
 
msgstr ""
 

	
 
#: c3l_membership/forms.py:31
 
msgid "Membership Plan"
 
msgstr ""
 

	
 
#: c3l_membership/forms.py:32 c3l_membership/forms.py:63
 
msgid "Please select one of the options!"
 
msgstr ""
 

	
 
#: c3l_membership/forms.py:36
 
msgid ""
 
"Regular membership - Membership with voting rights on the general "
 
"assembly."
 
msgstr ""
 

	
 
#: c3l_membership/forms.py:42
 
msgid ""
 
"Supporting membership - Membership without voting rights on the general "
 
"assembly."
 
msgstr ""
 

	
 
#: c3l_membership/forms.py:50
 
msgid "I am a student and would like to have the reduced membership fees."
 
msgstr ""
 

	
 
#: c3l_membership/forms.py:56
 
msgid ""
 
"I am a starving hacker and cannot afford the membership! (Please get in "
 
"touch with us at info@c3l.lu before filling out this membership form)"
 
msgstr ""
 

	
 
#: c3l_membership/forms.py:62
 
msgid "Payment Options"
 
msgstr ""
 

	
 
#: c3l_membership/forms.py:66
 
msgid "Birthday"
 
msgstr ""
 

	
 
#: c3l_membership/forms.py:69
 
msgid "Nr., Street"
 
msgstr ""
 

	
 
#: c3l_membership/forms.py:73
 
msgid "Postal Code"
 
msgstr ""
 

	
 
#: c3l_membership/forms.py:78
 
msgid "City/Town"
 
msgstr ""
 

	
 
#: c3l_membership/forms.py:83
 
msgid "State/County/Province"
 
msgstr ""
 

	
 
#: c3l_membership/forms.py:88
 
msgid "Country"
 
msgstr ""
 

	
 
#: c3l_membership/forms.py:93
 
msgid ""
 
"By submitting this membership application, you agree to have read and "
 
"understood the <a href=\"http://statutes.c3l.lu\">statutes of the Chaos "
 
"Computer Club Lëtzebuerg A.S.B.L.</a>."
 
msgstr ""
 

	
 
#: c3l_membership/forms.py:100
 
msgid ""
 
"I am under 18 years of age and have the approval of my legal "
 
"representative."
 
msgstr ""
 

	
0 comments (0 inline, 0 general)