From 7b94843bb870c8f88991260a94aedd9d95ad3d13 Mon Sep 17 00:00:00 2001 From: Sistason <c3infra@sistason.de> Date: Fri, 13 Aug 2021 01:43:34 +0200 Subject: [PATCH] Updated translations readme, made some editorial translation changes and fixed some typos This changes config key "LOGINNAME_BLACKLIST" to "LOGINNAME_BLOCKLIST". --- README.md | 8 +- debian/control | 2 +- uffd/default_config.cfg | 2 +- .../templates/selfservice/self.html | 4 - .../templates/selfservice/set_password.html | 2 +- uffd/signup/templates/signup/start.html | 2 +- uffd/translations/README.md | 21 --- uffd/translations/de/LC_MESSAGES/messages.mo | Bin 30812 -> 30848 bytes uffd/translations/de/LC_MESSAGES/messages.po | 165 +++++++++--------- uffd/user/models.py | 6 +- uffd/user/templates/user/list.html | 4 +- uffd/user/templates/user/show.html | 6 +- uffd/user/views_user.py | 8 +- update_translations.sh | 5 + 14 files changed, 109 insertions(+), 126 deletions(-) delete mode 100644 uffd/translations/README.md diff --git a/README.md b/README.md index 4efd31b5..5990afda 100644 --- a/README.md +++ b/README.md @@ -60,13 +60,13 @@ We ship a [pylint](https://pylint.org/) config to verify changes with. Uffd reads its default config from `uffd/default_config.cfg`. You can overwrite config variables by creating a config file in the `instance` folder. -The file must be named `conifg.cfg` (Python syntax), `config.json` or `config.yml`/`config.yaml`. +The file must be named `config.cfg` (Python syntax), `config.json` or `config.yml`/`config.yaml`. You can also set a custom file name with the environment variable `CONFIG_FILENAME`. ## Bind with LDAP service account or as user? Uffd can use a dedicated service account for LDAP operations by setting `LDAP_SERVICE_BIND_DN`. -Leave that variable blank to use anonymouse bind. +Leave that variable blank to use anonymous bind. Or set `LDAP_SERVICE_USER_BIND` to use the credentials of the currently logged in user. If you choose to run with user credentials, some features are not available, like password resets @@ -108,7 +108,9 @@ The web frontend is initially written in English and translated in the following  The selection uses the language browser header by default but can be overwritten via a UI element. -You can specify the availble languages in the config. +You can specify the available languages in the config. + +Use the `update_translations.sh` to update the translation files. ## License diff --git a/debian/control b/debian/control index f7414c84..4b7add38 100644 --- a/debian/control +++ b/debian/control @@ -16,7 +16,7 @@ Architecture: any Depends: ${misc:Depends}, # Unlike most debian python packages, we depend directly on the deb packages and do not want to populate our dependencies from the setup.py . -# Bacause of this we do not use the variable from pybild. +# Because of this we do not use the variable from pybuild. # ${python3:Depends}, python3-ldap3, python3-flask, diff --git a/uffd/default_config.cfg b/uffd/default_config.cfg index 0d10750a..6a27760b 100644 --- a/uffd/default_config.cfg +++ b/uffd/default_config.cfg @@ -80,7 +80,7 @@ SELF_SIGNUP=False INVITE_MAX_VALID_DAYS=21 -LOGINNAME_BLACKLIST=['^admin$', '^root$'] +LOGINNAME_BLOCKLIST=['^admin$', '^root$'] #MFA_ICON_URL = 'https://example.com/logo.png' #MFA_RP_ID = 'example.com' # If unset, hostname from current request is used diff --git a/uffd/selfservice/templates/selfservice/self.html b/uffd/selfservice/templates/selfservice/self.html index 2ddcc9b4..8e080099 100644 --- a/uffd/selfservice/templates/selfservice/self.html +++ b/uffd/selfservice/templates/selfservice/self.html @@ -22,10 +22,6 @@ <label>{{_("Login Name")}}</label> <input type="text" class="form-control" value="{{ user.loginname }}" readonly> </div> - <div class="form-group col-12 col-md-3"> - <label>{{_("User ID")}}</label> - <input type="text" class="form-control" value="{{ user.uid }}" readonly> - </div> </div> <div class="form-group"> <label>{{_("Display Name")}}</label> diff --git a/uffd/selfservice/templates/selfservice/set_password.html b/uffd/selfservice/templates/selfservice/set_password.html index 6288906b..42eaa866 100644 --- a/uffd/selfservice/templates/selfservice/set_password.html +++ b/uffd/selfservice/templates/selfservice/set_password.html @@ -14,7 +14,7 @@ <label for="user-password1">{{_("New Password")}}</label> <input type="password" class="form-control" id="user-password1" name="password1" required="required" tabindex = "2"> <small class="form-text text-muted"> - {{_("At least 8 and at most 256 characters, no other special requirements. But please don't be stupid, do use a password manager.")}} + {{_("At least 8 and at most 256 characters, no other special requirements. But please use a password manager.")}} </small> </div> <div class="form-group col-12"> diff --git a/uffd/signup/templates/signup/start.html b/uffd/signup/templates/signup/start.html index fd96d80f..a60dbdb2 100644 --- a/uffd/signup/templates/signup/start.html +++ b/uffd/signup/templates/signup/start.html @@ -46,7 +46,7 @@ <label for="user-password1">{{_('Password')}}</label> <input type="password" class="form-control" id="user-password1" name="password1" minlength=8 maxlength=256 required> <small class="form-text text-muted"> - {{_("At least 8 and at most 256 characters, no other special requirements. But please don't be stupid, do use a password manager.")}} + {{_("At least 8 and at most 256 characters, no other special requirements. But please use a password manager.")}} </small> </div> <div class="form-group col-12"> diff --git a/uffd/translations/README.md b/uffd/translations/README.md deleted file mode 100644 index c5b74111..00000000 --- a/uffd/translations/README.md +++ /dev/null @@ -1,21 +0,0 @@ -# How to add new translations - -Extract all translatable string from `.py` and `.html` files to a `.pot`. -```bash -pybabel extract -F babel.cfg -k lazy_gettext -o messages.pot . -``` -Update the `messages.po` file to include the new / updated strings. -```bash -pybabel update -i messages.pot -d translations -``` -Compile the `messages.po` file to a `messages.mo` file. -```bash -pybabel compile -d translations -``` -Bonus: -Initialize a new language. -```bash -pybabel init -i messages.pot -d translations -l de -``` - -Complete Documentation of Flask-Babel: https://flask-babel.tkte.ch \ No newline at end of file diff --git a/uffd/translations/de/LC_MESSAGES/messages.mo b/uffd/translations/de/LC_MESSAGES/messages.mo index 1d1ab4d5fdc5821051d0185373fc92a51b51a77b..6f193ab85ad4005a5b6702d5573c3f24fb05797e 100644 GIT binary patch delta 5276 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 DSsV&O delta 5244 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 diff --git a/uffd/translations/de/LC_MESSAGES/messages.po b/uffd/translations/de/LC_MESSAGES/messages.po index 60b944e1..e7f52925 100644 --- a/uffd/translations/de/LC_MESSAGES/messages.po +++ b/uffd/translations/de/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2021-08-02 12:33+0200\n" +"POT-Creation-Date: 2021-08-13 01:48+0200\n" "PO-Revision-Date: 2021-05-25 21:18+0200\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language: de\n" @@ -59,7 +59,7 @@ msgstr "Dir fehlen Berechtigungen um diesen Einladungslink zu erstellen" #: uffd/invite/views.py:91 msgid "Invite link must either allow signup or grant at least one role" msgstr "" -"Einladungslink must entweder Account-Registrierung erlauben oder Rollen " +"Einladungslink muss entweder Account-Registrierung erlauben oder Rollen " "vergeben" #: uffd/invite/views.py:119 uffd/invite/views.py:148 @@ -74,7 +74,7 @@ msgstr "Rollen erfolgreich geändert" msgid "Invite link does not allow signup" msgstr "Einladungslink erlaubt keine Account-Registrierung" -#: uffd/invite/views.py:173 uffd/selfservice/views.py:53 +#: uffd/invite/views.py:173 uffd/selfservice/views.py:50 #: uffd/signup/views.py:49 msgid "Passwords do not match" msgstr "Die Passwörter stimmen nicht überein" @@ -107,7 +107,7 @@ msgstr "Link" #: uffd/invite/templates/invite/list.html:13 msgid "Created by" -msgstr "Ersteller" +msgstr "Erstellt durch" #: uffd/invite/templates/invite/list.html:14 msgid "Permissions" @@ -147,7 +147,7 @@ msgstr "Abgelaufen" #: uffd/invite/templates/invite/list.html:57 msgid "Invalid, unpermitted creator" -msgstr "Ungültig, unberechtigter Ersteller" +msgstr "Ungültig, erstellt durch unberechtigten Account" #: uffd/invite/templates/invite/list.html:59 msgid "Invalid" @@ -205,7 +205,7 @@ msgstr "Keine Account-Registrierung möglich" #: uffd/invite/templates/invite/list.html:98 #, python-format msgid "Link grants users the role \"%(name)s\"" -msgstr "Link gibt Nutzern die Rolle \"%(name)s\"" +msgstr "Link gibt Accounts die Rolle \"%(name)s\"" #: uffd/invite/templates/invite/list.html:104 msgid "Never used" @@ -267,7 +267,7 @@ msgstr "Enthaltene Rollen" #: uffd/role/templates/role/list.html:14 #: uffd/rolemod/templates/rolemod/list.html:9 #: uffd/rolemod/templates/rolemod/show.html:46 -#: uffd/selfservice/templates/selfservice/self.html:107 +#: uffd/selfservice/templates/selfservice/self.html:103 #: uffd/user/templates/group/list.html:10 #: uffd/user/templates/group/show.html:11 uffd/user/templates/user/show.html:95 #: uffd/user/templates/user/show.html:127 @@ -278,7 +278,7 @@ msgstr "Name" #: uffd/role/templates/role/list.html:15 uffd/role/templates/role/show.html:48 #: uffd/rolemod/templates/rolemod/list.html:10 #: uffd/rolemod/templates/rolemod/show.html:28 -#: uffd/selfservice/templates/selfservice/self.html:108 +#: uffd/selfservice/templates/selfservice/self.html:104 #: uffd/user/templates/group/list.html:11 uffd/user/templates/user/show.html:96 #: uffd/user/templates/user/show.html:128 msgid "Description" @@ -426,7 +426,7 @@ msgid "Two-factor authentication failed" msgstr "Zwei-Faktor-Authentifizierung fehlgeschlagen" #: uffd/mfa/templates/mfa/auth.html:12 -#: uffd/selfservice/templates/selfservice/self.html:73 +#: uffd/selfservice/templates/selfservice/self.html:69 msgid "Two-Factor Authentication" msgstr "Zwei-Faktor-Authentifizierung" @@ -473,12 +473,12 @@ msgid "Disable two-factor authentication" msgstr "Zwei-Faktor-Authentifizierung (2FA) deaktivieren" #: uffd/mfa/templates/mfa/setup.html:18 -#: uffd/selfservice/templates/selfservice/self.html:79 +#: uffd/selfservice/templates/selfservice/self.html:75 msgid "Two-factor authentication is currently <strong>enabled</strong>." msgstr "Die Zwei-Faktor-Authentifizierung ist derzeit <strong>aktiviert</strong>." #: uffd/mfa/templates/mfa/setup.html:20 -#: uffd/selfservice/templates/selfservice/self.html:81 +#: uffd/selfservice/templates/selfservice/self.html:77 msgid "Two-factor authentication is currently <strong>disabled</strong>." msgstr "" "Die Zwei-Faktor-Authentifizierung ist derzeit " @@ -700,7 +700,7 @@ msgstr "Sekunden" msgid "Verify and complete setup" msgstr "Verifiziere und beende das Setup" -#: uffd/oauth2/views.py:95 uffd/selfservice/views.py:79 +#: uffd/oauth2/views.py:95 uffd/selfservice/views.py:76 #: uffd/session/views.py:93 #, python-format msgid "" @@ -740,7 +740,7 @@ msgstr "" #: uffd/oauth2/templates/oauth2/logout.html:34 msgid "Logging you out on all services ..." -msgstr "Melde dich bei allen Diensten ab ..." +msgstr "Abmeldung bei allen Diensten ..." #: uffd/oauth2/templates/oauth2/logout.html:38 msgid "Skip this and continue" @@ -762,7 +762,7 @@ msgstr "" msgid "Access denied" msgstr "Zugriff verweigert" -#: uffd/role/views.py:51 uffd/selfservice/templates/selfservice/self.html:92 +#: uffd/role/views.py:51 uffd/selfservice/templates/selfservice/self.html:88 #: uffd/user/templates/user/list.html:20 uffd/user/templates/user/show.html:21 #: uffd/user/templates/user/show.html:90 msgid "Roles" @@ -789,15 +789,15 @@ msgid "" "All non-service users will be removed as members from this role and get " "its permissions implicitly. Are you sure?" msgstr "" -"Alle Benutzer-Accounts, die keine Service-Accounts sind, verlieren diese " -"Rolle und erhalten dessen Berechtigungen implizit." +"Alle Nicht-Service-Accounts verlieren diese Rolle und erhalten dessen " +"Berechtigungen implizit." #: uffd/role/templates/role/show.html:17 uffd/role/templates/role/show.html:23 msgid "Set as default" msgstr "Als Default setzen" #: uffd/role/templates/role/show.html:19 uffd/role/templates/role/show.html:21 -#: uffd/selfservice/templates/selfservice/self.html:123 +#: uffd/selfservice/templates/selfservice/self.html:119 #: uffd/user/templates/user/show.html:11 msgid "Are you sure?" msgstr "Wirklich fortfahren?" @@ -832,7 +832,7 @@ msgstr "Keine Moderationsgruppe" #: uffd/role/templates/role/show.html:63 msgid "Moderators" -msgstr "Moderatoren" +msgstr "Accounts mit Moderationsrechten" #: uffd/role/templates/role/show.html:71 #: uffd/rolemod/templates/rolemod/show.html:18 @@ -886,7 +886,7 @@ msgstr "Rollenname" #: uffd/rolemod/templates/rolemod/show.html:32 msgid "Moderators:" -msgstr "Moderatoren:" +msgstr "Accounts mit Moderationsrechten:" #: uffd/rolemod/templates/rolemod/show.html:42 msgid "Role members:" @@ -896,31 +896,31 @@ msgstr "Mitglieder:" msgid "Remove" msgstr "Entfernen" -#: uffd/selfservice/views.py:25 +#: uffd/selfservice/views.py:22 msgid "Selfservice" msgstr "Selfservice" -#: uffd/selfservice/views.py:37 +#: uffd/selfservice/views.py:34 msgid "Display name changed." msgstr "Anzeigename geändert." -#: uffd/selfservice/views.py:39 +#: uffd/selfservice/views.py:36 msgid "Display name is not valid." msgstr "Anzeigename ist nicht valide." -#: uffd/selfservice/views.py:42 +#: uffd/selfservice/views.py:39 msgid "We sent you an email, please verify your mail address." msgstr "Wir haben dir eine E-Mail gesendet, bitte prüfe deine E-Mail-Adresse." -#: uffd/selfservice/views.py:56 +#: uffd/selfservice/views.py:53 msgid "Password changed" msgstr "Passwort geändert" -#: uffd/selfservice/views.py:59 +#: uffd/selfservice/views.py:56 msgid "Invalid password" msgstr "Passwort ungültig" -#: uffd/selfservice/views.py:77 +#: uffd/selfservice/views.py:74 #, python-format msgid "" "We received too many password reset requests for this user! Please wait " @@ -929,48 +929,48 @@ msgstr "" "Wir haben zu viele fehlgeschlagene Anmeldeversuche für diesen Account! " "Bitte warte mindestens %(delay)s." -#: uffd/selfservice/views.py:83 +#: uffd/selfservice/views.py:80 msgid "" "We sent a mail to this user's mail address if you entered the correct " "mail and login name combination" msgstr "" -"Falls E-Mail-Adresse und Benutzername richtig waren, wurde eine E-Mail an" -" die Adresse gesendet." +"Falls E-Mail-Adresse und Anmeldename richtig waren, wurde eine E-Mail an " +"die Adresse gesendet." -#: uffd/selfservice/views.py:93 uffd/selfservice/views.py:121 +#: uffd/selfservice/views.py:90 uffd/selfservice/views.py:118 msgid "Token expired, please try again." msgstr "Link abgelaufen, bitte versuche es erneut." -#: uffd/selfservice/views.py:101 +#: uffd/selfservice/views.py:98 msgid "You need to set a password, please try again." msgstr "Password fehlt, bitte versuche es erneut." -#: uffd/selfservice/views.py:104 +#: uffd/selfservice/views.py:101 msgid "Passwords do not match, please try again." msgstr "Die Passwörter stimmen nicht überein, bitte versuche es erneut" -#: uffd/selfservice/views.py:108 +#: uffd/selfservice/views.py:105 msgid "Password ist not valid, please try again." msgstr "Ungültiges Passwort, bitte versuche es erneut" -#: uffd/selfservice/views.py:111 +#: uffd/selfservice/views.py:108 msgid "New password set" msgstr "Passwort geändert" -#: uffd/selfservice/views.py:129 +#: uffd/selfservice/views.py:126 msgid "New mail set" msgstr "E-Mail-Adresse geändert" -#: uffd/selfservice/views.py:140 +#: uffd/selfservice/views.py:137 msgid "Leaving roles is disabled" msgstr "Verlassen von Rollen ist deaktiviert" -#: uffd/selfservice/views.py:147 +#: uffd/selfservice/views.py:144 #, python-format msgid "You left role %(role_name)s" msgstr "Rolle %(role_name)s verlassen" -#: uffd/selfservice/views.py:211 +#: uffd/selfservice/views.py:161 uffd/selfservice/views.py:181 #, python-format msgid "Mail to \"%(mail_address)s\" could not be sent!" msgstr "E-Mail an \"%(mail_address)s\" konnte nicht gesendet werden!" @@ -985,7 +985,7 @@ msgstr "Passwort vergessen" #: uffd/signup/templates/signup/start.html:19 #: uffd/user/templates/user/list.html:18 uffd/user/templates/user/show.html:48 msgid "Login Name" -msgstr "Benutzername" +msgstr "Anmeldename" #: uffd/selfservice/templates/selfservice/forgot_password.html:18 msgid "Mail Address" @@ -1007,7 +1007,7 @@ msgstr "" #: uffd/selfservice/templates/selfservice/self.html:14 #: uffd/user/templates/user/show.html:18 msgid "Profile" -msgstr "Profile" +msgstr "Profil" #: uffd/selfservice/templates/selfservice/self.html:15 msgid "" @@ -1023,40 +1023,35 @@ msgstr "" msgid "Changes may take serveral minutes to be visible in all services." msgstr "Änderungen sind erst nach einigen Minuten in allen Diensten sichtbar." -#: uffd/selfservice/templates/selfservice/self.html:26 -#: uffd/user/templates/user/show.html:28 -msgid "User ID" -msgstr "Benutzer ID" - -#: uffd/selfservice/templates/selfservice/self.html:31 +#: uffd/selfservice/templates/selfservice/self.html:27 #: uffd/signup/templates/signup/start.html:32 #: uffd/user/templates/user/list.html:19 uffd/user/templates/user/show.html:63 msgid "Display Name" msgstr "Anzeigename" -#: uffd/selfservice/templates/selfservice/self.html:35 +#: uffd/selfservice/templates/selfservice/self.html:31 #: uffd/signup/templates/signup/start.html:39 msgid "E-Mail Address" msgstr "E-Mail-Adresse" -#: uffd/selfservice/templates/selfservice/self.html:38 +#: uffd/selfservice/templates/selfservice/self.html:34 msgid "We will send you a confirmation mail to this address if you change it" msgstr "" "Wir werden dir eine Bestätigungsmail zum Setzen der neuen E-Mail-Adresse " "senden." -#: uffd/selfservice/templates/selfservice/self.html:41 +#: uffd/selfservice/templates/selfservice/self.html:37 msgid "Update Profile" msgstr "Änderungen speichern" -#: uffd/selfservice/templates/selfservice/self.html:50 +#: uffd/selfservice/templates/selfservice/self.html:46 #: uffd/session/templates/session/login.html:18 #: uffd/signup/templates/signup/start.html:46 #: uffd/user/templates/user/show.html:77 msgid "Password" msgstr "Passwort" -#: uffd/selfservice/templates/selfservice/self.html:51 +#: uffd/selfservice/templates/selfservice/self.html:47 msgid "" "Your login password for the Single-Sign-On. Only enter it on the Single-" "Sign-On login page! No other legit websites will ask you for this " @@ -1067,27 +1062,27 @@ msgstr "" " Webseite wird dich nach diesem Passwort fragen. Es wird auch niemals für" " Support-Anfragen benötigt." -#: uffd/selfservice/templates/selfservice/self.html:56 +#: uffd/selfservice/templates/selfservice/self.html:52 #: uffd/selfservice/templates/selfservice/set_password.html:14 msgid "New Password" msgstr "Neues Passwort" -#: uffd/selfservice/templates/selfservice/self.html:58 +#: uffd/selfservice/templates/selfservice/self.html:54 #: uffd/user/templates/user/show.html:84 msgid "At least 8 and at most 256 characters, no other special requirements." msgstr "Mindestens 8 und maximal 256 Zeichen, keine weiteren Einschränkungen." -#: uffd/selfservice/templates/selfservice/self.html:62 +#: uffd/selfservice/templates/selfservice/self.html:58 #: uffd/selfservice/templates/selfservice/set_password.html:21 #: uffd/signup/templates/signup/start.html:53 msgid "Repeat Password" msgstr "Passwort wiederholen" -#: uffd/selfservice/templates/selfservice/self.html:64 +#: uffd/selfservice/templates/selfservice/self.html:60 msgid "Change Password" msgstr "Passwort ändern" -#: uffd/selfservice/templates/selfservice/self.html:74 +#: uffd/selfservice/templates/selfservice/self.html:70 msgid "" "Setting up Two-Factor Authentication (2FA) adds an additional step to the" " Single-Sign-On login and increases the security of your account " @@ -1097,11 +1092,11 @@ msgstr "" "Anmeldung im Single-Sign-On hinzu und verbessert damit die Sicherheit " "deines Accounts erheblich." -#: uffd/selfservice/templates/selfservice/self.html:84 +#: uffd/selfservice/templates/selfservice/self.html:80 msgid "Manage two-factor authentication" msgstr "Zwei-Faktor-Authentifizierung (2FA) verwalten" -#: uffd/selfservice/templates/selfservice/self.html:93 +#: uffd/selfservice/templates/selfservice/self.html:89 msgid "" "Aside from a set of base permissions, your roles determine the " "permissions of your account." @@ -1109,7 +1104,7 @@ msgstr "" "Deine Berechtigungen werden, von einigen Basis-Berechtigungen abgesehen, " "von deinen Rollen bestimmt" -#: uffd/selfservice/templates/selfservice/self.html:95 +#: uffd/selfservice/templates/selfservice/self.html:91 #, python-format msgid "" "See <a href=\"%(services_url)s\">Services</a> for an overview of your " @@ -1118,15 +1113,17 @@ msgstr "" "Auf <a href=\"%(services_url)s\">Dienste</a> erhälst du einen Überblick " "über deine aktuellen Berechtigungen." -#: uffd/selfservice/templates/selfservice/self.html:100 +#: uffd/selfservice/templates/selfservice/self.html:96 msgid "Administrators and role moderators can invite you to new roles." -msgstr "Administratoren und Rollen-Moderatoren können dich zu Rollen einladen." +msgstr "" +"Accounts mit Adminrechten oder Rollen-Moderationsrechten können dich zu " +"Rollen einladen." -#: uffd/selfservice/templates/selfservice/self.html:102 +#: uffd/selfservice/templates/selfservice/self.html:98 msgid "Administrators can add new roles to your account." -msgstr "Administratoren können dich zu neuen Rollen hinzufügen." +msgstr "Accounts mit Adminrechten können dich zu neuen Rollen hinzufügen." -#: uffd/selfservice/templates/selfservice/self.html:117 +#: uffd/selfservice/templates/selfservice/self.html:113 msgid "" "Some permissions in this role require you to setup two-factor " "authentication" @@ -1134,11 +1131,11 @@ msgstr "" "Einige Berechtigungen dieser Rolle erfordern das Einrichten von Zwei-" "Faktor-Authentifikation" -#: uffd/selfservice/templates/selfservice/self.html:124 +#: uffd/selfservice/templates/selfservice/self.html:120 msgid "Leave" msgstr "Verlassen" -#: uffd/selfservice/templates/selfservice/self.html:132 +#: uffd/selfservice/templates/selfservice/self.html:128 msgid "You currently don't have any roles" msgstr "Du hast derzeit keine Rollen" @@ -1150,10 +1147,10 @@ msgstr "Passwort zurücksetzen" #: uffd/signup/templates/signup/start.html:49 msgid "" "At least 8 and at most 256 characters, no other special requirements. But" -" please don't be stupid, do use a password manager." +" please use a password manager." msgstr "" "Mindestens 8 und maximal 256 Zeichen, keine weiteren Einschränkungen. " -"Bitte sei nicht dumm und verwende einen Passwort-Manager." +"Bitte verwende einen Passwort-Manager." #: uffd/selfservice/templates/selfservice/set_password.html:25 msgid "Set password" @@ -1191,7 +1188,7 @@ msgstr "" #: uffd/session/views.py:99 msgid "Login name or password is wrong" -msgstr "Der Benutzername oder das Passwort ist falsch" +msgstr "Der Anmeldename oder das Passwort ist falsch" #: uffd/session/views.py:102 msgid "You do not have access to this service" @@ -1422,11 +1419,11 @@ msgstr "Gruppen" #: uffd/user/views_user.py:29 msgid "Users" -msgstr "Benutzer" +msgstr "Accounts" #: uffd/user/views_user.py:49 msgid "Login name does not meet requirements" -msgstr "Benutzername entspricht nicht den Anforderungen" +msgstr "Anmeldename entspricht nicht den Anforderungen" #: uffd/user/views_user.py:54 msgid "Mail is invalid" @@ -1447,16 +1444,16 @@ msgstr "Service-Account erstellt" #: uffd/user/views_user.py:80 msgid "User created. We sent the user a password reset link by mail" msgstr "" -"Benutzer erstellt. E-Mail mit einem Link zum Setzen des Passworts wurde " +"Account erstellt. E-Mail mit einem Link zum Setzen des Passworts wurde " "versendet." #: uffd/user/views_user.py:82 msgid "User updated" -msgstr "Benutzer aktualisiert" +msgstr "Account aktualisiert" #: uffd/user/views_user.py:93 msgid "Deleted user" -msgstr "Benutzer gelöscht" +msgstr "Account gelöscht" #: uffd/user/templates/group/list.html:9 uffd/user/templates/group/show.html:7 msgid "GID" @@ -1476,7 +1473,7 @@ msgstr "service" #: uffd/user/templates/user/list.html:57 msgid "Import a csv formated list of users" -msgstr "Importiere eine als CSV formatierte Liste von Benutzern" +msgstr "Importiere eine als CSV formatierte Liste von Accounts" #: uffd/user/templates/user/list.html:64 msgid "" @@ -1489,8 +1486,8 @@ msgstr "" "Beispiel:" #: uffd/user/templates/user/list.html:75 uffd/user/templates/user/show.html:58 -msgid "Ignore login name blacklist" -msgstr "Benutzernamen-Blacklist ignorieren" +msgid "Ignore login name blocklist" +msgstr "Liste der nicht erlaubten Anmeldenamen ignorieren" #: uffd/user/templates/user/list.html:80 msgid "Import" @@ -1500,6 +1497,10 @@ msgstr "Importieren" msgid "Reset 2FA" msgstr "2FA zurücksetzen" +#: uffd/user/templates/user/show.html:28 +msgid "User ID" +msgstr "Account ID" + #: uffd/user/templates/user/show.html:36 msgid "will be choosen" msgstr "wird automatisch bestimmt" @@ -1511,19 +1512,19 @@ msgstr "Service-Account" #: uffd/user/templates/user/show.html:51 msgid "" "Only letters, numbers, dashes (\"-\") and underscores (\"_\") are " -"allowed. At most 32, at least 2 characters. There is a word blacklist. " +"allowed. At most 32, at least 2 characters. There is a word blocklist. " "Must be unique." msgstr "" "Nur Buchstaben, Zahlen, Binde- (\"-\") und Unterstriche (\"_\") sind " -"erlaubt. Maximal 32, mindestens 2 Zeichen. Es gibt eine Blacklist. Muss " -"einmalig sein." +"erlaubt. Maximal 32, mindestens 2 Zeichen. Es gibt eine Liste nicht " +"erlaubter Namen. Muss einmalig sein." #: uffd/user/templates/user/show.html:66 msgid "" "If you leave this empty it will be set to the login name. At most 128, at" " least 2 characters. No character restrictions." msgstr "" -"Wenn das Feld leer bleibt, wird der Benutzername verwendet. Maximal 128, " +"Wenn das Feld leer bleibt, wird der Anmeldename verwendet. Maximal 128, " "mindestens 2 Zeichen. Keine Zeichenbeschränkung." #: uffd/user/templates/user/show.html:70 @@ -1535,7 +1536,7 @@ msgid "" "Do a sanity check here. A user can take over another account if both have" " the same mail address set." msgstr "" -"Überprüfe, ob die E-Mail-Adresse plausibel ist! Ein Benutzer kann einen " +"Überprüfe, ob die E-Mail-Adresse plausibel ist! Ein Account kann einen " "anderen Account übernehmen, wenn beide die selbe E-Mail-Adresse " "verwenden." diff --git a/uffd/user/models.py b/uffd/user/models.py index 2749884f..81a6e363 100644 --- a/uffd/user/models.py +++ b/uffd/user/models.py @@ -109,14 +109,14 @@ class BaseUser(ldap.Model): return True return False - def set_loginname(self, value, ignore_blacklist=False): + def set_loginname(self, value, ignore_blocklist=False): if len(value) > 32 or len(value) < 1: return False for char in value: if not char in string.ascii_lowercase + string.digits + '_-': return False - if not ignore_blacklist: - for expr in current_app.config['LOGINNAME_BLACKLIST']: + if not ignore_blocklist: + for expr in current_app.config['LOGINNAME_BLOCKLIST']: if re.match(expr, value): return False self.loginname = value diff --git a/uffd/user/templates/user/list.html b/uffd/user/templates/user/list.html index 013f6fb3..61f5b68d 100644 --- a/uffd/user/templates/user/list.html +++ b/uffd/user/templates/user/list.html @@ -71,8 +71,8 @@ testuser2,foobaadsfr@example.com,5;2 </pre> <textarea rows="10" class="form-control" name="csv"></textarea> <div class="form-check mt-2"> - <input class="form-check-input" type="checkbox" id="ignore-loginname-blacklist" name="ignore-loginname-blacklist" value="1" aria-label="enabled"> - <label class="form-check-label" for="ignore-loginname-blacklist">{{_("Ignore login name blacklist")}}</label> + <input class="form-check-input" type="checkbox" id="ignore-loginname-blocklist" name="ignore-loginname-blocklist" value="1" aria-label="enabled"> + <label class="form-check-label" for="ignore-loginname-blocklist">{{_("Ignore login name blocklist")}}</label> </div> </div> <div class="modal-footer"> diff --git a/uffd/user/templates/user/show.html b/uffd/user/templates/user/show.html index 9fee26bf..59ef1bd1 100644 --- a/uffd/user/templates/user/show.html +++ b/uffd/user/templates/user/show.html @@ -48,14 +48,14 @@ <label for="user-loginname">{{_("Login Name")}}</label> <input type="text" class="form-control" id="user-loginname" name="loginname" value="{{ user.loginname or '' }}" {% if user.uid %}readonly{% endif %}> <small class="form-text text-muted"> - {{_("Only letters, numbers, dashes (\"-\") and underscores (\"_\") are allowed. At most 32, at least 2 characters. There is a word blacklist. Must be unique.")}} + {{_("Only letters, numbers, dashes (\"-\") and underscores (\"_\") are allowed. At most 32, at least 2 characters. There is a word blocklist. Must be unique.")}} </small> </div> {% if not user.uid %} <div class="form-group col"> <div class="form-check"> - <input class="form-check-input" type="checkbox" id="ignore-loginname-blacklist" name="ignore-loginname-blacklist" value="1" aria-label="enabled"> - <label class="form-check-label" for="ignore-loginname-blacklist">{{_('Ignore login name blacklist')}}</label> + <input class="form-check-input" type="checkbox" id="ignore-loginname-blocklist" name="ignore-loginname-blocklist" value="1" aria-label="enabled"> + <label class="form-check-label" for="ignore-loginname-blocklist">{{_('Ignore login name blocklist')}}</label> </div> </div> {% endif %} diff --git a/uffd/user/views_user.py b/uffd/user/views_user.py index 80e91b05..ee5bc71e 100644 --- a/uffd/user/views_user.py +++ b/uffd/user/views_user.py @@ -42,10 +42,10 @@ def show(uid=None): def update(uid=None): if uid is None: user = User() - ignore_blacklist = request.form.get('ignore-loginname-blacklist', False) + ignore_blocklist = request.form.get('ignore-loginname-blocklist', False) if request.form.get('serviceaccount'): user.is_service_user = True - if not user.set_loginname(request.form['loginname'], ignore_blacklist=ignore_blacklist): + if not user.set_loginname(request.form['loginname'], ignore_blocklist=ignore_blocklist): flash(_('Login name does not meet requirements')) return redirect(url_for('user.show')) else: @@ -101,7 +101,7 @@ def csvimport(): flash('No data for csv import!') return redirect(url_for('user.index')) - ignore_blacklist = request.values.get('ignore-loginname-blacklist', False) + ignore_blocklist = request.values.get('ignore-loginname-blocklist', False) roles = Role.query.filter_by(is_default=False).all() usersadded = 0 @@ -112,7 +112,7 @@ def csvimport(): flash("invalid line, ignored : {}".format(row)) continue newuser = User() - if not newuser.set_loginname(row[0], ignore_blacklist=ignore_blacklist) or not newuser.set_displayname(row[0]): + if not newuser.set_loginname(row[0], ignore_blocklist=ignore_blocklist) or not newuser.set_displayname(row[0]): flash("invalid login name, skipped : {}".format(row)) continue if not newuser.set_mail(row[1]): diff --git a/update_translations.sh b/update_translations.sh index c3a80dee..69ca86f2 100755 --- a/update_translations.sh +++ b/update_translations.sh @@ -2,6 +2,11 @@ set -e pybabel extract -F uffd/babel.cfg -k lazy_gettext -o messages.pot uffd + +# If you want to initialize a new message, use: +# pybabel init -i messages.pot -d uffd/translations -l fr +# Complete Documentation of Flask-Babel: https://flask-babel.tkte.ch + pybabel update -i messages.pot -d uffd/translations pybabel compile -d uffd/translations -- GitLab