diff --git a/frontend/locales/de.json b/frontend/locales/de.json
new file mode 100644
index 000000000..82e1f89d9
--- /dev/null
+++ b/frontend/locales/de.json
@@ -0,0 +1,187 @@
+{
+ "action": {
+ "back": "Zurück",
+ "cancel": "Abbrechen",
+ "continue": "Fortfahren",
+ "save": "Speichern"
+ },
+ "branding": {
+ "privacy_policy": {
+ "alt": "Link zur Datenschutzerklärung des Dienstes",
+ "link": "Datenschutzerklärung"
+ },
+ "terms_and_conditions": {
+ "alt": "Link zu den Nutzungsbedingungen des Dienstes",
+ "link": "Nutzungsbedingungen"
+ }
+ },
+ "common": {
+ "add": "Hinzufügen",
+ "error": "Fehler",
+ "loading": "Lade …",
+ "next": "Weiter",
+ "previous": "Zurück"
+ },
+ "frontend": {
+ "add_email_form": {
+ "email_denied_alert": {
+ "text": "Die eingegebene E-Mail-Adresse wird von der Serverrichtlinie nicht zugelassen.",
+ "title": "E-Mail-Adresse durch Richtlinie abgelehnt"
+ },
+ "email_exists_alert": {
+ "text": "Die eingegebene E-Mail-Adresse ist diesem Konto bereits zugeordnet",
+ "title": "Diese E-Mailadresse existiert bereits"
+ },
+ "email_field_label": "E-Mail-Adresse hinzufügen",
+ "email_invalid_alert": {
+ "text": "Die eingegebene E-Mail-Adresse ist ungültig",
+ "title": "Ungültige Email-Adresse"
+ }
+ },
+ "app_sessions_list": {
+ "error": "App-Sitzungen konnten nicht geladen werden",
+ "heading": "Anwendungen"
+ },
+ "browser_session_details": {
+ "current_badge": "Aktuell",
+ "session_details_title": "Sitzung"
+ },
+ "browser_sessions_overview": {
+ "body:one": "{{count}} aktive Sitzung",
+ "body:other": "{{count}} aktive Sitzungen",
+ "heading": "Browser",
+ "view_all_button": "Alle anzeigen"
+ },
+ "compat_session_detail": {
+ "client_details_title": "Client",
+ "name": "Name",
+ "session_details_title": "Sitzung"
+ },
+ "device_type_icon_label": {
+ "desktop": "Desktop",
+ "mobile": "Mobil",
+ "unknown": "Unbekannter Gerätetyp",
+ "web": "Web"
+ },
+ "end_session_button": {
+ "confirmation_modal_title": "Sind Sie sicher, dass Sie diese Sitzung abmelden möchten?",
+ "text": "Sitzung beenden"
+ },
+ "error_boundary_title": "Etwas ist schief gelaufen",
+ "last_active": {
+ "active_date": "Aktiv {{relativeDate}}",
+ "active_now": "Jetzt aktiv",
+ "inactive_90_days": "Seit über 90 Tagen inaktiv"
+ },
+ "nav": {
+ "profile": "Profil",
+ "sessions": "Sitzungen"
+ },
+ "not_found_alert_title": "Nicht gefunden.",
+ "not_logged_in_alert": "Sie sind nicht angemeldet.",
+ "oauth2_client_detail": {
+ "details_title": "Client",
+ "id": "Client-ID",
+ "name": "Name",
+ "policy": "Richtlinie",
+ "terms": "Nutzungsbedingungen"
+ },
+ "oauth2_session_detail": {
+ "client_details_name": "Name",
+ "client_title": "Client",
+ "session_details_title": "Sitzung"
+ },
+ "pagination_controls": {
+ "total": "Gesamt: {{totalCount}}"
+ },
+ "reset_cross_signing": {
+ "button": "Zurücksetzen der Kryptoidentität zulassen",
+ "description": "Wenn Sie nirgendwo anders angemeldet sind und alle Wiederherstellungsoptionen vergessen oder verloren haben, müssen Sie Ihre Krypto-Identität zurücksetzen. Das bedeutet, dass Sie ihren bestehenden Nachrichtenverlauf verlieren, andere Nutzer sehen, dass Sie ihre Identität zurückgesetzt haben und Sie ihre vorhandenen Geräte erneut verifizieren müssen.",
+ "failure": {
+ "description": "Dies könnte ein vorübergehendes Problem sein. Bitte versuchen Sie es später erneut. Wenn das Problem weiterhin besteht, wenden Sie sich bitte an Ihren Administrator.",
+ "title": "Krypto-Identität konnte nicht zugelassen werden"
+ },
+ "heading": "Krypto-Identität zurücksetzen",
+ "success": {
+ "description": "Ein Client kann jetzt die Krypto-Identität Ihres Kontos vorübergehend zurücksetzen. Folgen Sie den Anweisungen in Ihrem Client, um den Vorgang abzuschließen.",
+ "title": "Das Zurücksetzen der Krypto-Identität ist vorübergehend erlaubt"
+ }
+ },
+ "selectable_session": {
+ "label": "Sitzung auswählen"
+ },
+ "session": {
+ "current_badge": "Aktuell",
+ "device_id_label": "Device ID",
+ "finished_date": "Beendet ",
+ "finished_label": "Finished",
+ "id_label": "ID",
+ "ip_label": "IP Address",
+ "last_active_label": "Last Active",
+ "last_auth_label": "Last Authentication",
+ "scopes_label": "Scopes",
+ "signed_in_date": "Angemeldet ",
+ "signed_in_label": "Signed in",
+ "uri_label": "Uri",
+ "user_id_label": "User ID",
+ "username_label": "User name"
+ },
+ "session_detail": {
+ "alert": {
+ "button": "Zurück",
+ "text": "Diese Sitzung existiert nicht oder ist nicht mehr aktiv.",
+ "title": "Sitzung kann nicht gefunden werden: {{deviceId}}"
+ }
+ },
+ "unknown_route": "Unbekannte Route {{route}}",
+ "unverified_email_alert": {
+ "button": "Überprüfen und verifizieren",
+ "text:one": "Sie haben {{count}} nicht verifizierte E-Mail-Adresse.",
+ "text:other": "Sie haben {{count}} nicht verifizierte E-Mail-Adressen.",
+ "title": "Nicht verifizierte E-Mail-Adresse"
+ },
+ "user_email": {
+ "delete_button_confirmation_modal": {
+ "body": "Möchten Sie diese E-Mail-Adresse wirklich entfernen?"
+ },
+ "delete_button_title": "E-Mail-Adresse entfernen",
+ "email": "E-Mail",
+ "make_primary_button": "Als primäre Adresse festlegen",
+ "primary_email": "Primäre E-Mail-Adresse",
+ "retry_button": "Verifizierung wiederholen",
+ "unverified": "Nicht verifiziert"
+ },
+ "user_email_list": {
+ "heading": "E-Mails",
+ "no_primary_email_alert": "Keine primäre E-Mail-Adresse"
+ },
+ "user_greeting": {
+ "error": "Fehler beim Laden des Benutzers"
+ },
+ "user_name": {
+ "display_name_field_label": "Anzeigename"
+ },
+ "user_sessions_overview": {
+ "heading": "Wo Sie angemeldet sind"
+ },
+ "verify_email": {
+ "code_field_error": "Code nicht erkannt",
+ "code_field_label": "6-stelliger Code",
+ "code_field_wrong_shape": "Der Code muss 6-stellig sein",
+ "email_sent_alert": {
+ "description": "Geben Sie unten den neuen Code ein.",
+ "title": "Neuer Code gesendet"
+ },
+ "enter_code_prompt": "Geben Sie den 6-stelligen Code ein, der an {{email}} gesendet wurde",
+ "heading": "Verifizieren Sie Ihre E-Mail-Adresse",
+ "invalid_code_alert": {
+ "description": "Überprüfen Sie den Code, der an Ihre E-Mail-Adresse gesendet wurde, und aktualisieren Sie die folgenden Felder, um fortzufahren.",
+ "title": "Sie haben einen falschen Code eingegeben"
+ },
+ "resend_code": "Code erneut senden",
+ "resend_email": "E-Mail erneut senden",
+ "sent": "Gesendet!",
+ "unknown_email": "Unbekannte E-Mail-Adresse"
+ }
+ }
+}
\ No newline at end of file
diff --git a/frontend/locales/fr.json b/frontend/locales/fr.json
index f359c8f82..622739ac6 100644
--- a/frontend/locales/fr.json
+++ b/frontend/locales/fr.json
@@ -112,8 +112,19 @@
},
"session": {
"current_badge": "Cet appareil",
+ "device_id_label": "ID de l’appareil",
"finished_date": "Terminé ",
- "signed_in_date": "Connecté "
+ "finished_label": "Terminée",
+ "id_label": "ID",
+ "ip_label": "Adresse IP",
+ "last_active_label": "Dernière activité",
+ "last_auth_label": "Dernière authentification",
+ "scopes_label": "Scopes",
+ "signed_in_date": "Connecté ",
+ "signed_in_label": "Connecté",
+ "uri_label": "Uri",
+ "user_id_label": "User ID",
+ "username_label": "Nom d'utilisateur"
},
"session_detail": {
"alert": {
diff --git a/translations/de.json b/translations/de.json
new file mode 100644
index 000000000..ecab9d34d
--- /dev/null
+++ b/translations/de.json
@@ -0,0 +1,146 @@
+{
+ "action": {
+ "cancel": "Abbrechen",
+ "continue": "Weiter",
+ "create_account": "Konto erstellen",
+ "sign_in": "Anmelden",
+ "sign_out": "Abmelden",
+ "submit": "Absenden"
+ },
+ "app": {
+ "human_name": "Matrix Authentication Service",
+ "name": "matrix-authentication-service",
+ "technical_description": "OpenID Connect discovery document: %(discovery_url)s"
+ },
+ "branding": {
+ "privacy_policy": {
+ "alt": "Link zur Datenschutzerklärung des Dienstes",
+ "link": "Datenschutzerklärung"
+ },
+ "terms_and_conditions": {
+ "alt": "Link zu den Allgemeinen Geschäftsbedingungen des Dienstes",
+ "link": "Allgemeine Geschäftsbedingungen"
+ }
+ },
+ "common": {
+ "display_name": "Anzeigename",
+ "email_address": "E-Mail-Adresse",
+ "mxid": "Matrix-ID",
+ "password": "Passwort",
+ "password_confirm": "Passwort wiederholen",
+ "username": "Benutzername"
+ },
+ "error": {
+ "unexpected": "Unerwarteter Fehler"
+ },
+ "mas": {
+ "add_email": {
+ "description": "Geben Sie eine E-Mail-Adresse ein, um Ihr Konto wiederherzustellen, falls Sie den Zugriff darauf verlieren.",
+ "heading": "E-Mail-Adresse hinzufügen"
+ },
+ "back_to_homepage": "Zurück",
+ "change_password": {
+ "change": "Passwort ändern",
+ "confirm": "Passwort wiederholen",
+ "current": "Aktuelles Passwort",
+ "description": "Hiermit wird das Passwort für Ihr Konto geändert.",
+ "heading": "Mein Passwort ändern",
+ "new": "Neues Passwort"
+ },
+ "emails": {
+ "greeting": "Hallo %(username)s,",
+ "verify": {
+ "body_html": "Ihr Code zur Bestätigung dieser E-Mail-Adresse lautet: %(code)s",
+ "body_text": "Ihr Code zur Bestätigung dieser E-Mail-Adresse lautet: %(code)s",
+ "subject": "Ihr E-Mail-Bestätigungscode lautet: %(code)s"
+ }
+ },
+ "errors": {
+ "denied_policy": "Abgelehnt durch Richtlinie: %(policy)s",
+ "field_required": "Dieses Feld ist ein Pflichtfeld",
+ "invalid_credentials": "Ungültige Anmeldeinformationen",
+ "password_mismatch": "Die Passwortfelder stimmen nicht überein",
+ "username_taken": "Dieser Benutzername ist bereits vergeben"
+ },
+ "login": {
+ "call_to_register": "Sie haben noch kein Konto?",
+ "continue_with_provider": "Weiter mit %(provider)s",
+ "description": "Bitte melden Sie sich an, um fortzufahren:",
+ "headline": "Anmelden",
+ "link": {
+ "description": "Ihr %(provider)s Konto verknüpfen",
+ "headline": "Melden Sie sich zum Verbinden an"
+ },
+ "no_login_methods": "Keine Anmeldemethoden verfügbar.",
+ "separator": "Oder"
+ },
+ "navbar": {
+ "my_account": "Mein Konto",
+ "register": "Konto erstellen",
+ "signed_in_as": "Angemeldet als %(username)s."
+ },
+ "not_found": {
+ "description": "Die Seite, nach der Sie gesucht haben, existiert nicht oder wurde verschoben",
+ "heading": "Seite nicht gefunden"
+ },
+ "not_you": "Nicht %(username)s?",
+ "or_separator": "Oder",
+ "policy_violation": {
+ "description": "Dies kann am Client liegen, der die Anfrage erstellt hat, am aktuell angemeldeten Benutzer oder an der Anfrage selbst.",
+ "heading": "Die Autorisierungsanfrage wurde durch eine Richtlinie dieses Dienstes abgelehnt",
+ "logged_as": "Eingeloggt als %(username)s"
+ },
+ "register": {
+ "call_to_login": "Sie haben bereits ein Konto?",
+ "create_account": {
+ "description": "Bitte erstellen Sie ein Konto, um loszulegen:",
+ "heading": "Konto erstellen"
+ },
+ "sign_in_instead": "Stattdessen anmelden"
+ },
+ "scope": {
+ "edit_profile": "Ihr Profil und Ihre Kontaktdaten bearbeiten",
+ "manage_sessions": "Ihre Geräte und Sitzungen verwalten",
+ "mas_admin": "Beliebige Benutzer verwalten",
+ "send_messages": "Nachrichten in Ihrem Namen senden",
+ "synapse_admin": "Den Synapse-Homeserver verwalten",
+ "view_messages": "Ihre vorhandenen Nachrichten und Daten anzeigen",
+ "view_profile": "Ihre Profilinformationen und Kontaktdaten anzeigen"
+ },
+ "upstream_oauth2": {
+ "link_mismatch": {
+ "heading": "Dieses Konto ist bereits mit einem anderen Konto verknüpft."
+ },
+ "register": {
+ "choose_username": {
+ "description": "Dies kann später nicht mehr geändert werden.",
+ "heading": "Wählen Sie Ihren Benutzernamen"
+ },
+ "create_account": "Neues Konto erstellen",
+ "enforced_by_policy": "Erzwungen durch Server-Richtlinie",
+ "forced_display_name": "Verwendet den folgenden Anzeigenamen",
+ "forced_email": "Verwendet die folgende E-Mail-Adresse",
+ "forced_localpart": "Verwendet den folgenden Benutzernamen",
+ "import_data": {
+ "description": "Bestätigen Sie die Informationen, die mit Ihrem neuen %(server_name)s Konto verknüpft werden.",
+ "heading": "Ihre Daten importieren"
+ },
+ "imported_from_upstream": "Von Ihrem Konto importiert",
+ "link_existing": "Mit einem bestehenden Konto verknüpfen",
+ "suggested_display_name": "Anzeigenamen importieren",
+ "suggested_email": "E-Mail-Adresse importieren",
+ "use": "Verwenden"
+ },
+ "suggest_link": {
+ "action": "Link",
+ "heading": "Mit Ihrem bestehenden Konto verknüpfen"
+ }
+ },
+ "verify_email": {
+ "6_digit_code": "6-stelliger Code",
+ "code": "Code",
+ "description": "Geben Sie den 6-stelligen Code ein, der an %(email)s gesendet wurde",
+ "headline": "Bestätigen Sie Ihre E-Mail-Adresse"
+ }
+ }
+}
\ No newline at end of file