From 851575949ae89f34af9a1730475f8f3f2b71d0f4 Mon Sep 17 00:00:00 2001 From: Julian Rother <julian@cccv.de> Date: Sun, 14 Aug 2022 13:20:34 +0200 Subject: [PATCH] Fix/complete mfa translations --- uffd/mfa/templates/mfa/auth.html | 32 ++-- uffd/mfa/templates/mfa/setup.html | 28 +-- uffd/mfa/templates/mfa/setup_recovery.html | 2 +- uffd/mfa/templates/mfa/setup_totp.html | 2 +- uffd/translations/de/LC_MESSAGES/messages.mo | Bin 34435 -> 36213 bytes uffd/translations/de/LC_MESSAGES/messages.po | 185 ++++++++++++++----- 6 files changed, 170 insertions(+), 79 deletions(-) diff --git a/uffd/mfa/templates/mfa/auth.html b/uffd/mfa/templates/mfa/auth.html index 31e92dcc..8b64a597 100644 --- a/uffd/mfa/templates/mfa/auth.html +++ b/uffd/mfa/templates/mfa/auth.html @@ -40,7 +40,7 @@ function begin_webauthn() { $('#webauthn-alert').addClass('d-none'); $('#webauthn-spinner').removeClass('d-none'); - $('#webauthn-btn-text').text('Fetching credential data'); + $('#webauthn-btn-text').text({{ _('Contacting server')|tojson }}); $('#webauthn-btn').prop('disabled', true); fetch({{ url_for('mfa.auth_webauthn_begin')|tojson }}, { method: 'POST', @@ -49,17 +49,17 @@ function begin_webauthn() { return response.arrayBuffer(); } else if (response.status == 403) { window.location = {{ request.url|tojson }}; /* reload */ - throw new Error('Session timed out'); + throw new Error({{ _('Session timed out')|tojson }}); } else if (response.status == 404) { - throw new Error('You have not registered any U2F/FIDO2 devices for your account'); + throw new Error({{ _('You have not registered any U2F/FIDO2 devices for your account')|tojson }}); } else { - throw new Error('Server error'); + throw new Error({{ _('Server error')|tojson }}); } }).then(CBOR.decode).then(function(options) { - $('#webauthn-btn-text').text('Waiting for response from your device'); + $('#webauthn-btn-text').text({{ _('Waiting for device')|tojson }}); return navigator.credentials.get(options); }).then(function(assertion) { - $('#webauthn-btn-text').text('Verifing response'); + $('#webauthn-btn-text').text({{ _('Verifing response')|tojson }}); return fetch({{ url_for('mfa.auth_webauthn_complete')|tojson }}, { method: 'POST', headers: {'Content-Type': 'application/cbor'}, @@ -73,37 +73,37 @@ function begin_webauthn() { }).then(function(response) { if (response.ok) { $('#webauthn-spinner').addClass('d-none'); - $('#webauthn-btn-text').text('Success, redirecting'); + $('#webauthn-btn-text').text({{ _('Success, redirecting')|tojson }}); window.location = {{ (ref or url_for('index'))|tojson }}; } else if (response.status == 403) { window.location = {{ request.url|tojson }}; /* reload */ - throw new Error('Session timed out'); + throw new Error({{ _('Session timed out')|tojson }}); } else { - throw new Error('Response from authenticator rejected'); + throw new Error({{ _('Invalid response from device')|tojson }}); } }).catch(function(err) { console.log(err); /* various webauthn errors */ if (err.name == 'NotAllowedError') - $('#webauthn-alert').text('Authentication timed out, was aborted or not allowed'); + $('#webauthn-alert').text({{ _('Authentication timed out, was aborted or not allowed')|tojson }}); else if (err.name == 'InvalidStateError') - $('#webauthn-alert').text('Device is not registered for your account'); + $('#webauthn-alert').text({{ _('Device is not registered for your account')|tojson }}); else if (err.name == 'AbortError') - $('#webauthn-alert').text('Authentication was aborted'); + $('#webauthn-alert').text({{ _('Authentication was aborted')|tojson }}); else if (err.name == 'NotSupportedError') - $('#webauthn-alert').text('U2F and FIDO2 devices are not supported by your browser'); + $('#webauthn-alert').text({{ _('U2F and FIDO2 devices are not supported by your browser')|tojson }}); /* errors from fetch() */ else if (err.name == 'TypeError') - $('#webauthn-alert').text('Could not connect to server'); + $('#webauthn-alert').text({{ _('Could not connect to server')|tojson }}); /* our own errors */ else if (err.name == 'Error') $('#webauthn-alert').text(err.message); /* fallback */ else - $('#webauthn-alert').text('Authentication failed ('+err+')'); + $('#webauthn-alert').text({{ _('Authentication failed ')|tojson }}+'('+err+')'); $('#webauthn-alert').removeClass('d-none'); $('#webauthn-spinner').addClass('d-none'); - $('#webauthn-btn-text').text('Try FIDO token again'); + $('#webauthn-btn-text').text({{ _('Retry authenticate with U2F/FIDO2 device')|tojson }}); $('#webauthn-btn').prop('disabled', false); }); } diff --git a/uffd/mfa/templates/mfa/setup.html b/uffd/mfa/templates/mfa/setup.html index 04b90a4a..5d5aefaa 100644 --- a/uffd/mfa/templates/mfa/setup.html +++ b/uffd/mfa/templates/mfa/setup.html @@ -196,7 +196,7 @@ mfa_enabled: The user has setup at least one two-factor method. Two-factor authe $('#webauthn-form').on('submit', function(e) { $('#webauthn-alert').addClass('d-none'); $('#webauthn-spinner').removeClass('d-none'); - $('#webauthn-btn-text').text('Contacting server'); + $('#webauthn-btn-text').text({{ _('Contacting server')|tojson }}); $('#webauthn-btn').prop('disabled', true); fetch({{ url_for('mfa.setup_webauthn_begin')|tojson }}, { method: 'POST', @@ -204,10 +204,10 @@ $('#webauthn-form').on('submit', function(e) { if (response.ok) return response.arrayBuffer(); if (response.status == 403) - throw new Error('You need to generate recovery codes first'); - throw new Error('Server error'); + throw new Error({{ _('You need to generate recovery codes first')|tojson }}); + throw new Error({{ _('Server error')|tojson }}); }).then(CBOR.decode).then(function(options) { - $('#webauthn-btn-text').text('Waiting for response from your device'); + $('#webauthn-btn-text').text({{ _('Waiting for device')|tojson }}); return navigator.credentials.create(options); }).then(function(attestation) { return fetch({{ url_for('mfa.setup_webauthn_complete')|tojson }}, { @@ -222,34 +222,34 @@ $('#webauthn-form').on('submit', function(e) { }).then(function(response) { if (response.ok) { $('#webauthn-spinner').addClass('d-none'); - $('#webauthn-btn-text').text('Success'); + $('#webauthn-btn-text').text({{ _('Success')|tojson }}); window.location = {{ url_for('mfa.setup')|tojson }}; } else { - throw new Error('Response from authenticator rejected'); + throw new Error({{ _('Invalid response from device')|tojson }}); } }, function(err) { console.log(err); /* various webauthn errors */ if (err.name == 'NotAllowedError') - $('#webauthn-alert').text('Registration timed out, was aborted or not allowed'); + $('#webauthn-alert').text({{ _('Registration timed out, was aborted or not allowed')|tojson }}); else if (err.name == 'InvalidStateError') - $('#webauthn-alert').text('You attempted to register a device that is already registered'); + $('#webauthn-alert').text({{ _('Device already registered')|tojson }}); else if (err.name == 'AbortError') - $('#webauthn-alert').text('Registration was aborted'); + $('#webauthn-alert').text({{ _('Registration was aborted')|tojson }}); else if (err.name == 'NotSupportedError') - $('#webauthn-alert').text('U2F and FIDO2 devices are not supported by your browser'); + $('#webauthn-alert').text({{ _('U2F and FIDO2 devices are not supported by your browser')|tojson }}); /* errors from fetch() */ else if (err.name == 'TypeError') - $('#webauthn-alert').text('Could not connect to server'); + $('#webauthn-alert').text({{ _('Could not connect to server')|tojson }}); /* our own errors */ else if (err.name == 'Error') $('#webauthn-alert').text(err.message); /* fallback */ else - $('#webauthn-alert').text('Registration failed ('+err+')'); + $('#webauthn-alert').text({{ _('Registration failed')|tojson }}+' ('+err+')'); $('#webauthn-alert').removeClass('d-none'); $('#webauthn-spinner').addClass('d-none'); - $('#webauthn-btn-text').text('Retry registration'); + $('#webauthn-btn-text').text({{ _('Retry registration')|tojson }}); $('#webauthn-btn').prop('disabled', false); }); return false; @@ -261,7 +261,7 @@ if (typeof(PublicKeyCredential) != "undefined") { $('#webauthn-name').prop('disabled', false); {% endif %} } else { - $('#webauthn-alert').text('U2F and FIDO2 devices are not supported by your browser'); + $('#webauthn-alert').text({{ _('U2F and FIDO2 devices are not supported by your browser')|tojson }}); $('#webauthn-alert').removeClass('d-none'); } diff --git a/uffd/mfa/templates/mfa/setup_recovery.html b/uffd/mfa/templates/mfa/setup_recovery.html index a4dbf9cf..2f70cbbd 100644 --- a/uffd/mfa/templates/mfa/setup_recovery.html +++ b/uffd/mfa/templates/mfa/setup_recovery.html @@ -23,7 +23,7 @@ </p> <div class="btn-toolbar"> - <a class="ml-auto mb-2 btn btn-primary d-print-none" href="{{ url_for('mfa.setup') }}">Continue</a> + <a class="ml-auto mb-2 btn btn-primary d-print-none" href="{{ url_for('mfa.setup') }}">{{_("Continue")}}</a> <a class="ml-2 mb-2 btn btn-light d-print-none" href="{{ methods|map(attribute='code')|join('\n')|datauri }}" download="uffd-recovery-codes"> {{_("Download codes")}} </a> diff --git a/uffd/mfa/templates/mfa/setup_totp.html b/uffd/mfa/templates/mfa/setup_totp.html index d4d44702..da2e3317 100644 --- a/uffd/mfa/templates/mfa/setup_totp.html +++ b/uffd/mfa/templates/mfa/setup_totp.html @@ -34,7 +34,7 @@ <form action="{{ url_for('mfa.setup_totp_finish', name=name) }}" method="POST" class="form"> <div class="row m-0"> - <input type="text" name="code" class="form-control mb-2 mr-2 col-auto col-md" id="code" placeholder="Code" required autofocus> + <input type="text" name="code" class="form-control mb-2 mr-2 col-auto col-md" id="code" placeholder="{{_('Code')}}" required autofocus> <button type="submit" class="btn btn-primary mb-2 col col-md-auto">{{_("Verify and complete setup")}}</button> </div> </form> diff --git a/uffd/translations/de/LC_MESSAGES/messages.mo b/uffd/translations/de/LC_MESSAGES/messages.mo index cfb6bee2a20599943ba6d4931b82cbe99bdf845a..2675ce774b0fd969fc54ba5df443f0e0a845295a 100644 GIT binary patch delta 7297 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 delta 5825 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 Q&%`lVvE$%o;m#x$0B*toIRF3v diff --git a/uffd/translations/de/LC_MESSAGES/messages.po b/uffd/translations/de/LC_MESSAGES/messages.po index e4434e76..87a74d14 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: 2022-05-22 16:42+0200\n" +"POT-Creation-Date: 2022-08-14 13:15+0200\n" "PO-Revision-Date: 2021-05-25 21:18+0200\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language: de\n" @@ -16,7 +16,7 @@ msgstr "" "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" +"Generated-By: Babel 2.8.0\n" #: uffd/ratelimit.py:76 msgid "a few seconds" @@ -56,7 +56,8 @@ msgstr "Einladungslink weist keine Rollen zu" msgid "Invite link does not grant any new roles" msgstr "Einladungslink weist keine neuen Rollen zu" -#: uffd/invite/models.py:90 uffd/signup/models.py:115 +#: uffd/invite/models.py:90 uffd/mfa/templates/mfa/setup.html:225 +#: uffd/signup/models.py:115 msgid "Success" msgstr "Erfolgreich" @@ -95,19 +96,19 @@ msgstr "Einladungslink erlaubt keine Account-Registrierung" msgid "Passwords do not match" msgstr "Die Passwörter stimmen nicht überein" -#: uffd/invite/views.py:180 uffd/signup/views.py:54 +#: uffd/invite/views.py:181 uffd/signup/views.py:55 #, python-format msgid "Too many signup requests with this mail address! Please wait %(delay)s." msgstr "" "Zu viele Account-Registrierungen mit dieser E-Mail-Adresse! Bitte warte " "%(delay)s." -#: uffd/invite/views.py:182 uffd/signup/views.py:56 uffd/signup/views.py:96 +#: uffd/invite/views.py:184 uffd/signup/views.py:58 #, python-format msgid "Too many requests! Please wait %(delay)s." msgstr "Zu viele Anfragen! Bitte warte %(delay)s." -#: uffd/invite/views.py:195 uffd/signup/views.py:72 +#: uffd/invite/views.py:199 uffd/signup/views.py:76 msgid "Could not send mail" msgstr "Mailversand fehlgeschlagen" @@ -451,7 +452,7 @@ msgstr "Generiere zuerst die Wiederherstellungscodes!" msgid "Code is invalid" msgstr "Wiederherstellungscode ist ungültig" -#: uffd/mfa/views.py:123 +#: uffd/mfa/views.py:107 #, python-format msgid "" "2FA WebAuthn support disabled because import of the fido2 module failed " @@ -460,16 +461,16 @@ msgstr "" "2FA WebAuthn Unterstützung deaktiviert, da das fido2 Modul nicht geladen " "werden konnte (%s)" -#: uffd/mfa/views.py:232 +#: uffd/mfa/views.py:216 #, python-format msgid "We received too many invalid attempts! Please wait at least %s." msgstr "Wir haben zu viele fehlgeschlagene Versuche! Bitte warte mindestens %s." -#: uffd/mfa/views.py:246 +#: uffd/mfa/views.py:230 msgid "You have exhausted your recovery codes. Please generate new ones now!" msgstr "Du hast keine Wiederherstellungscode mehr. Bitte generiere diese jetzt!" -#: uffd/mfa/views.py:249 +#: uffd/mfa/views.py:233 msgid "" "You only have a few recovery codes remaining. Make sure to generate new " "ones before they run out." @@ -477,7 +478,7 @@ msgstr "" "Du hast nur noch wenige Wiederherstellungscodes übrig. Bitte generiere " "diese erneut bevor keine mehr übrig sind." -#: uffd/mfa/views.py:253 +#: uffd/mfa/views.py:237 msgid "Two-factor authentication failed" msgstr "Zwei-Faktor-Authentifizierung fehlgeschlagen" @@ -499,7 +500,7 @@ msgstr "" #: uffd/mfa/templates/mfa/auth.html:21 msgid "Authenticate with U2F/FIDO2 device" -msgstr "Authentifiziere dich mit einem U2F/FIDO2 Gerät" +msgstr "Authentifiziere dich mit einem U2F/FIDO2-Gerät" #: uffd/mfa/templates/mfa/auth.html:24 msgid "or" @@ -513,6 +514,67 @@ msgstr "Code aus deiner Authentifikator-App oder Wiederherstellungscode" msgid "Verify" msgstr "Verifizieren" +#: uffd/mfa/templates/mfa/auth.html:43 uffd/mfa/templates/mfa/setup.html:199 +msgid "Contacting server" +msgstr "Verbinde mit Server" + +#: uffd/mfa/templates/mfa/auth.html:52 uffd/mfa/templates/mfa/auth.html:80 +msgid "Session timed out" +msgstr "Sitzung abgelaufen" + +#: uffd/mfa/templates/mfa/auth.html:54 +msgid "You have not registered any U2F/FIDO2 devices for your account" +msgstr "Es sind keine U2F/FIDO2-Geräte für deinen Account registriert" + +#: uffd/mfa/templates/mfa/auth.html:56 uffd/mfa/templates/mfa/setup.html:208 +msgid "Server error" +msgstr "Serverfehler" + +#: uffd/mfa/templates/mfa/auth.html:59 uffd/mfa/templates/mfa/setup.html:210 +msgid "Waiting for device" +msgstr "Warte auf Gerät" + +#: uffd/mfa/templates/mfa/auth.html:62 +msgid "Verifing response" +msgstr "Überprüfe Antwort" + +#: uffd/mfa/templates/mfa/auth.html:76 +msgid "Success, redirecting" +msgstr "Erfolg, leite weiter" + +#: uffd/mfa/templates/mfa/auth.html:82 uffd/mfa/templates/mfa/setup.html:228 +msgid "Invalid response from device" +msgstr "Ungültige Antwort von Gerät" + +#: uffd/mfa/templates/mfa/auth.html:88 +msgid "Authentication timed out, was aborted or not allowed" +msgstr "Authentifikation abgelaufen, abgebrochen oder nicht erlaubt" + +#: uffd/mfa/templates/mfa/auth.html:90 +msgid "Device is not registered for your account" +msgstr "Gerät ist nicht für deinen Account registriert" + +#: uffd/mfa/templates/mfa/auth.html:92 +msgid "Authentication was aborted" +msgstr "Authentifikation abgebrochen" + +#: uffd/mfa/templates/mfa/auth.html:94 uffd/mfa/templates/mfa/setup.html:240 +#: uffd/mfa/templates/mfa/setup.html:264 +msgid "U2F and FIDO2 devices are not supported by your browser" +msgstr "U2F- und FIDO2-Geräte werden vom Webbrowser nicht unterstüzt" + +#: uffd/mfa/templates/mfa/auth.html:97 uffd/mfa/templates/mfa/setup.html:243 +msgid "Could not connect to server" +msgstr "Verbindung zum Server fehlgeschlagen" + +#: uffd/mfa/templates/mfa/auth.html:103 +msgid "Authentication failed " +msgstr "Authentifikation fehlgeschlagen" + +#: uffd/mfa/templates/mfa/auth.html:106 +msgid "Retry authenticate with U2F/FIDO2 device" +msgstr "Authentifikation mit U2F/FIDO2-Gerät nochmal versuchen" + #: uffd/mfa/templates/mfa/disable.html:6 msgid "" "When you proceed, all recovery codes, registered authenticator " @@ -671,6 +733,30 @@ msgstr "Neues Gerät hinzufügen" msgid "No U2F/FIDO2 devices registered yet" msgstr "Bisher kein U2F/FIDO2 Gerät registriert" +#: uffd/mfa/templates/mfa/setup.html:207 +msgid "You need to generate recovery codes first" +msgstr "Du musst erst Wiederherstellungscodes generieren" + +#: uffd/mfa/templates/mfa/setup.html:234 +msgid "Registration timed out, was aborted or not allowed" +msgstr "Registrierung abgelaufen, abgebrochen oder nicht erlaubt" + +#: uffd/mfa/templates/mfa/setup.html:236 +msgid "Device already registered" +msgstr "Gerät bereits registriert" + +#: uffd/mfa/templates/mfa/setup.html:238 +msgid "Registration was aborted" +msgstr "Registrierung abgebrochen" + +#: uffd/mfa/templates/mfa/setup.html:249 +msgid "Registration failed" +msgstr "Registrierung fehlgeschlagen" + +#: uffd/mfa/templates/mfa/setup.html:252 +msgid "Retry registration" +msgstr "Registrierung nochmal versuchen" + #: uffd/mfa/templates/mfa/setup_recovery.html:8 msgid "" "Recovery codes allow you to login when you lose access to your " @@ -691,6 +777,12 @@ msgstr "" "Ort, sonst könntest du den Zugriff auf dein Konto verlieren. Alle " "vorherigen Wiederherstellungscodes sind nun ungültig." +#: uffd/mfa/templates/mfa/setup_recovery.html:26 +#: uffd/session/templates/session/deviceauth.html:36 +#: uffd/session/templates/session/devicelogin.html:25 +msgid "Continue" +msgstr "Weiter" + #: uffd/mfa/templates/mfa/setup_recovery.html:28 msgid "Download codes" msgstr "Codes herunterladen" @@ -718,9 +810,9 @@ msgid "" "\t\t\tapp:" msgstr "" "Falls du ein Mobilgerät verwendest und den Code nicht scannen kannst, " -"kannst du drauf klick und direkt in der Authentifikator-App öffnen. Wenn " -"das nicht funktioniert, gib die folgenden Angaben manuell in die " -"Authentifikator-App ein:" +"kannst du drauf klicken um ihn damit direkt in der Authentifikator-App zu" +" öffnen. Wenn das nicht funktioniert, gib die folgenden Angaben manuell " +"in die Authentifikator-App ein:" #: uffd/mfa/templates/mfa/setup_totp.html:23 msgid "Issuer" @@ -754,12 +846,16 @@ msgstr "Intervall/Dauer" msgid "seconds" msgstr "Sekunden" +#: uffd/mfa/templates/mfa/setup_totp.html:37 +msgid "Code" +msgstr "Code" + #: uffd/mfa/templates/mfa/setup_totp.html:38 msgid "Verify and complete setup" msgstr "Verifiziere und beende das Setup" #: uffd/oauth2/views.py:169 uffd/selfservice/views.py:71 -#: uffd/session/views.py:73 +#: uffd/session/views.py:74 #, python-format msgid "" "We received too many requests from your ip address/network! Please wait " @@ -1059,7 +1155,7 @@ msgstr "Passwort vergessen" #: uffd/selfservice/templates/selfservice/forgot_password.html:9 #: uffd/selfservice/templates/selfservice/self.html:21 #: uffd/session/templates/session/login.html:12 -#: uffd/signup/templates/signup/start.html:14 +#: uffd/signup/templates/signup/start.html:9 #: uffd/user/templates/user/list.html:18 uffd/user/templates/user/show.html:47 msgid "Login Name" msgstr "Anmeldename" @@ -1101,13 +1197,13 @@ msgid "Changes may take several minutes to be visible in all services." msgstr "Änderungen sind erst nach einigen Minuten in allen Diensten sichtbar." #: uffd/selfservice/templates/selfservice/self.html:25 -#: uffd/signup/templates/signup/start.html:27 +#: uffd/signup/templates/signup/start.html:22 #: uffd/user/templates/user/list.html:19 uffd/user/templates/user/show.html:62 msgid "Display Name" msgstr "Anzeigename" #: uffd/selfservice/templates/selfservice/self.html:29 -#: uffd/signup/templates/signup/start.html:34 +#: uffd/signup/templates/signup/start.html:29 msgid "E-Mail Address" msgstr "E-Mail-Adresse" @@ -1123,7 +1219,7 @@ msgstr "Änderungen speichern" #: uffd/selfservice/templates/selfservice/self.html:44 #: uffd/session/templates/session/login.html:16 -#: uffd/signup/templates/signup/start.html:41 +#: uffd/signup/templates/signup/start.html:36 #: uffd/user/templates/user/show.html:76 msgid "Password" msgstr "Passwort" @@ -1146,7 +1242,7 @@ msgstr "Neues Passwort" #: uffd/selfservice/templates/selfservice/self.html:56 #: uffd/selfservice/templates/selfservice/set_password.html:16 -#: uffd/signup/templates/signup/start.html:48 +#: uffd/signup/templates/signup/start.html:43 msgid "Repeat Password" msgstr "Passwort wiederholen" @@ -1328,7 +1424,7 @@ msgstr "Mitglieder der Gruppe \"%(group_name)s\" haben Zugriff" msgid "Hide mail addresses with remailer" msgstr "Verstecke Mailadressen mit dem Remailer" -#: uffd/session/views.py:71 +#: uffd/session/views.py:72 #, python-format msgid "" "We received too many invalid login attempts for this user! Please wait at" @@ -1337,27 +1433,27 @@ msgstr "" "Wir haben zu viele fehlgeschlagene Anmeldeversuche für diesen Account " "erhalten! Bitte warte mindestens %(delay)s." -#: uffd/session/views.py:79 +#: uffd/session/views.py:80 msgid "Login name or password is wrong" msgstr "Der Anmeldename oder das Passwort ist falsch" -#: uffd/session/views.py:85 +#: uffd/session/views.py:86 msgid "You do not have access to this service" msgstr "Du hast keinen Zugriff auf diesen Service" -#: uffd/session/views.py:97 uffd/session/views.py:108 +#: uffd/session/views.py:98 uffd/session/views.py:109 msgid "You need to login first" msgstr "Du musst dich erst anmelden" -#: uffd/session/views.py:129 uffd/session/views.py:139 +#: uffd/session/views.py:130 uffd/session/views.py:140 msgid "Initiation code is no longer valid" msgstr "Startcode ist nicht mehr gültig" -#: uffd/session/views.py:143 +#: uffd/session/views.py:144 msgid "Invalid confirmation code" msgstr "Ungültiger Bestätigungscode" -#: uffd/session/views.py:155 uffd/session/views.py:166 +#: uffd/session/views.py:156 uffd/session/views.py:167 msgid "Invalid initiation code" msgstr "Ungültiger Startcode" @@ -1392,11 +1488,6 @@ msgstr "" "\"Gerätelogin\" auf der Anmeldeseite aus. Gib den angezeigten Startcode " "oben ein." -#: uffd/session/templates/session/deviceauth.html:36 -#: uffd/session/templates/session/devicelogin.html:25 -msgid "Continue" -msgstr "Weiter" - #: uffd/session/templates/session/deviceauth.html:43 #, python-format msgid "Authorize the login for service <b>%(service_name)s</b>?" @@ -1482,7 +1573,7 @@ msgstr "Ein Account mit diesem Anmeldenamen existiert bereits" msgid "Valid" msgstr "Gültig" -#: uffd/signup/models.py:104 uffd/signup/views.py:100 +#: uffd/signup/models.py:104 uffd/signup/views.py:106 msgid "Wrong password" msgstr "Falsches Passwort" @@ -1490,16 +1581,16 @@ msgstr "Falsches Passwort" msgid "Signup not enabled" msgstr "Account-Registrierung ist deaktiviert" -#: uffd/signup/views.py:81 uffd/signup/views.py:89 +#: uffd/signup/views.py:86 uffd/signup/views.py:94 msgid "Invalid signup link" msgstr "Ungültiger Account-Registrierungs-Link" -#: uffd/signup/views.py:94 +#: uffd/signup/views.py:99 #, python-format msgid "Too many failed attempts! Please wait %(delay)s." msgstr "Zu viele fehlgeschlagene Versuche! Bitte warte mindestens %(delay)s." -#: uffd/signup/views.py:106 +#: uffd/signup/views.py:114 msgid "Your account was successfully created" msgstr "Account erfolgreich erstellt" @@ -1507,19 +1598,19 @@ msgstr "Account erfolgreich erstellt" msgid "Complete Registration" msgstr "Account-Registrierung abschließen" -#: uffd/signup/templates/signup/confirm.html:12 +#: uffd/signup/templates/signup/confirm.html:9 msgid "Please enter your password to complete the account registration" msgstr "Bitte gib dein Passwort ein, um die Account-Registrierung abzuschließen" -#: uffd/signup/templates/signup/confirm.html:16 +#: uffd/signup/templates/signup/confirm.html:13 msgid "Complete Account Registration" msgstr "Account-Registrierung abschließen" -#: uffd/signup/templates/signup/start.html:18 +#: uffd/signup/templates/signup/start.html:13 msgid "Check" msgstr "Überprüfen" -#: uffd/signup/templates/signup/start.html:23 +#: uffd/signup/templates/signup/start.html:18 #: uffd/user/templates/group/show.html:29 msgid "" "At least one and at most 32 lower-case characters, digits, dashes (\"-\")" @@ -1528,11 +1619,11 @@ msgstr "" "1 bis 32 Kleinbuchstaben, Zahlen, Binde- (\"-\") und Unterstriche " "(\"_\"). <b>Kann später nicht geändert werden!</b>" -#: uffd/signup/templates/signup/start.html:30 +#: uffd/signup/templates/signup/start.html:25 msgid "At least one and at most 128 characters, no other special requirements." msgstr "Mindestens 1 und maximal 128 Zeichen, keine weiteren Einschränkungen." -#: uffd/signup/templates/signup/start.html:37 +#: uffd/signup/templates/signup/start.html:32 msgid "" "We will send a confirmation mail to this address that you need to " "complete the registration." @@ -1540,19 +1631,19 @@ msgstr "" "Wir werden eine Bestätigungsmail an diese Adresse senden. Du benötigst " "sie, um die Account-Registrierung abzuschließen." -#: uffd/signup/templates/signup/start.html:52 +#: uffd/signup/templates/signup/start.html:47 msgid "Create Account" msgstr "Account registrieren" -#: uffd/signup/templates/signup/start.html:79 +#: uffd/signup/templates/signup/start.html:74 msgid "The name is already taken" msgstr "Dieser Name wird bereits verwendet" -#: uffd/signup/templates/signup/start.html:82 +#: uffd/signup/templates/signup/start.html:77 msgid "Too many requests! Please wait a bit before trying again!" msgstr "Zu viele Anfragen! Bitte warte etwas, bevor du es erneut versuchst!" -#: uffd/signup/templates/signup/start.html:85 +#: uffd/signup/templates/signup/start.html:80 msgid "The name is invalid" msgstr "Name ungültig" -- GitLab