diff --git a/uffd/mfa/templates/mfa/auth.html b/uffd/mfa/templates/mfa/auth.html
index 31e92dcc7019f08a0e2cae3cb0516e060fe03add..8b64a597c8eb9190a6ee6d13524758ab6430a9fd 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 04b90a4a1c8b0d09a202a6f7909e32f3bab29d02..5d5aefaa2be740e73c3957db6a79bb3cd179e36a 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 a4dbf9cf22f1b289eb20390aaae8a2249d657d8b..2f70cbbd4e6b4936433009e38d8d4425dd01f217 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 d4d447028775c0857b8a742e45b7ca66e9ce8a01..da2e331745d5ba2650f38f889e46134346ead7da 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
Binary files a/uffd/translations/de/LC_MESSAGES/messages.mo and b/uffd/translations/de/LC_MESSAGES/messages.mo differ
diff --git a/uffd/translations/de/LC_MESSAGES/messages.po b/uffd/translations/de/LC_MESSAGES/messages.po
index e4434e766f1805604fee3bd27b6d32b7b59b252f..87a74d145ac9ba72ddeb5a5ba99bf3a0eab78cb2 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"