{
  "test": "Hallo {{name}}",
  "common": {
    "404": "Etwas ist schiefgelaufen, versuche es später erneut.",
    "500": "Ein Serverfehler ist aufgetreten. Versuche es später erneut.",
    "whiteSpace": " ",
    "error": "FEHLER",
    "connectionError": "Verbindungsfehler. Prüfe dein Netzwerk und versuche es erneut.",
    "sessionReplacedElsewhere": "Deine Sitzung wurde auf einem anderen Gerät geöffnet.",
    "logoutFailed": "Abmelden fehlgeschlagen. Versuche es erneut.",
    "invalidGroup": "Ungültiger Raum.",
    "invalidLocation": "Ungültiger Standort.",
    "unknownError": "Ein unbekannter Fehler ist aufgetreten."
  },
  "middleware": {
    "notAdmin": "Du bist kein Admin."
  },
  "auth": {
    "required": "Du musst eingeloggt sein.",
    "forbidden": "Du hast keine Berechtigung für diese Aktion.",
    "invalidCondition": "Server-Auth-Konfiguration ist ungültig."
  },
  "api": {
    "invalidRequest": "Ungültige API-Anfrage.",
    "invalidName": "Ungültiger API-Name.",
    "invalidDataObject": "Ungültige API-Payload.",
    "invalidRequestFormat": "Ungültiges Anfrageformat.",
    "payloadTooLarge": "Die Request-Payload ist zu groß.",
    "notFound": "API '{{name}}' wurde nicht gefunden.",
    "invalidInputType": "Ungültige API-Eingabe.",
    "rateLimitExceeded": "Zu viele Anfragen. Versuche es in {{seconds}} Sekunden erneut.",
    "methodNotAllowed": "Methode nicht erlaubt. Erwartet: {{method}}.",
    "internalServerError": "Ein interner Serverfehler ist aufgetreten.",
    "invalidResponseStatus": "API hat einen ungültigen Antwortstatus zurückgegeben.",
    "emptyResponse": "API hat eine leere Antwort zurückgegeben."
  },
  "sync": {
    "invalidRequest": "Ungültige Sync-Anfrage.",
    "invalidCallback": "Ungültiger Sync-Callback.",
    "methodNotAllowed": "Sync-Methode nicht erlaubt.",
    "invalidName": "Ungültiger Sync-Name.",
    "invalidRequestFormat": "Ungültiges Sync-Anfrageformat.",
    "missingReceiver": "Ein Sync-Empfänger ist erforderlich.",
    "notFound": "Sync-Event wurde nicht gefunden.",
    "rateLimitExceeded": "Zu viele Sync-Anfragen. Versuche es in {{seconds}} Sekunden erneut.",
    "invalidInputType": "Ungültige Sync-Eingabe: {{message}}",
    "serverExecutionFailed": "Sync-Server-Handler ist fehlgeschlagen.",
    "invalidServerResponse": "Sync-Server hat eine ungültige Antwort zurückgegeben.",
    "noReceiversFound": "Keine Empfänger für dieses Sync-Event gefunden.",
    "receiverNotAllowed": "Das Senden an alle Clients ist nicht erlaubt.",
    "notRoomMember": "Du bist kein Mitglied des Raums, an den dieses Sync-Event gerichtet ist.",
    "invalidVersion": "Ungültige Sync-Version.",
    "failedRequest": "Sync-Anfrage {{name}} ist fehlgeschlagen: {{message}}",
    "requestTimeout": "Sync-Anfrage hat das Zeitlimit überschritten.",
    "disconnected": "Verbindung getrennt, bevor die Sync-Anfrage bestätigt wurde.",
    "disabled": "Sync über HTTP ist deaktiviert.",
    "devToolsUnavailable": "Sync-Entwicklerwerkzeuge sind in dieser Umgebung nicht verfügbar.",
    "clientExecutionFailed": "Sync-Client-Handler ist fehlgeschlagen.",
    "invalidClientResponse": "Sync-Client hat eine ungültige Antwort zurückgegeben.",
    "clientRejected": "Sync-Event wurde durch Client-Validierung abgelehnt.",
    "clientFilteredOut": "Du bist nicht im erforderlichen Kontext für dieses Sync-Event.",
    "ioUnavailable": "Socket-Server ist nicht verfügbar."
  },
  "error": {
    "invalidResponse": "Server hat eine ungültige Fehlerantwort zurückgegeben."
  },
  "login": {
    "empty": "Keine E-Mail oder kein Passwort angegeben.",
    "emailCharacterLimit": "E-Mail darf nicht länger als 191 Zeichen sein.",
    "passwordCharacterMinimum": "Passwort muss mindestens 8 Zeichen lang sein.",
    "passwordCharacterLimit": "Passwort darf nicht länger als 191 Zeichen sein.",
    "nameCharacterLimit": "Name darf nicht länger als 191 Zeichen sein.",
    "invalidEmailFormat": "Ungültiges E-Mail-Format.",
    "passwordNotMatch": "Passwörter stimmen nicht überein.",
    "emailExists": "E-Mail existiert bereits.",
    "userCreated": "Benutzer erstellt.",
    "createUserFailed": "Fehler beim Erstellen des Benutzers.",
    "userNotFound": "Benutzer nicht gefunden.",
    "wrongPassword": "Passwort stimmt nicht überein.",
    "loggedIn": "Benutzer eingeloggt.",
    "providerNotFound": "Provider nicht gefunden.",
    "oauthStateInitFailed": "OAuth-Sicherheitsstatus konnte nicht initialisiert werden.",
    "noReason": "Kein Grund angegeben.",
    "signInTitle": "Bei deinem Konto anmelden",
    "registerTitle": "Neues Konto erstellen",
    "noAccount": "Noch kein Konto? ",
    "haveAccount": "Bereits ein Konto? ",
    "createAccount": "Jetzt eines erstellen",
    "logIn": "Anmelden",
    "signUp": "Registrieren",
    "loading": "Laden...",
    "twoFactorTitle": "Zwei-Faktor-Verifizierung",
    "twoFactorIntro": "Gib den 6-stelligen Code aus deiner Authenticator-App ein.",
    "twoFactorEmailIntro": "Gib den Code ein, den wir dir per E-Mail geschickt haben.",
    "twoFactorRecoveryIntro": "Gib einen deiner unbenutzten Wiederherstellungscodes ein.",
    "twoFactorCodeLabel": "Verifizierungscode",
    "twoFactorVerify": "Verifizieren",
    "twoFactorUseTotp": "Meine Authenticator-App verwenden",
    "twoFactorUseEmail": "Code per E-Mail senden",
    "twoFactorUseRecovery": "Wiederherstellungscode verwenden",
    "twoFactorEmailSent": "Code an deine E-Mail gesendet.",
    "twoFactorRequired": "Zwei-Faktor-Verifizierung erforderlich.",
    "twoFactorInvalidCode": "Ungültiger Verifizierungscode.",
    "twoFactorLocked": "Zu viele Versuche — melde dich erneut an.",
    "twoFactorChallengeExpired": "Die Verifizierungssitzung ist abgelaufen — melde dich erneut an.",
    "twoFactorMethodUnavailable": "Diese Verifizierungsmethode ist nicht verfügbar.",
    "twoFactorEnrollmentExpired": "Die Einrichtungssitzung ist abgelaufen — starte neu.",
    "twoFactorPersistFailed": "Änderung konnte nicht gespeichert werden — versuche es erneut.",
    "twoFactorAlreadyEnabled": "Zwei-Faktor-Authentifizierung ist bereits an — schalte sie zuerst aus, um sie neu einzurichten.",
    "twoFactorDisabledByServer": "Zwei-Faktor-Authentifizierung ist in dieser App nicht verfügbar.",
    "emailCodeTitle": "Mit E-Mail-Code anmelden",
    "emailCodeIntro": "Wir mailen dir einen Einmalcode — kein Passwort nötig.",
    "emailCodeTab": "Stattdessen mit E-Mail-Code anmelden",
    "emailCodeSend": "Code senden",
    "emailCodeResend": "Neuen Code senden",
    "emailCodeLabel": "Anmeldecode",
    "emailCodeSent": "Code gesendet — prüfe dein Postfach.",
    "emailCodeInvalid": "Ungültiger Code.",
    "emailCodeExpired": "Der Code ist abgelaufen oder wurde bereits verwendet — fordere einen neuen an.",
    "emailCodeLocked": "Zu viele Versuche — fordere einen neuen Code an.",
    "emailCodeDisabled": "Anmeldung per E-Mail-Code ist nicht aktiviert.",
    "emailCodeSendFailed": "E-Mail konnte nicht gesendet werden — versuche es später.",
    "backToPassword": "Zurück zur Passwort-Anmeldung",
    "name": "Name",
    "emailAddress": "E-Mail-Adresse",
    "password": "Passwort",
    "confirmPassword": "Passwort bestätigen",
    "forgotPassword": "Passwort vergessen?",
    "orContinueWith": "Oder weiter mit",
    "forgotPasswordDisabled": "Passwort-Zurücksetzung ist deaktiviert.",
    "resetTitle": "Passwort zurücksetzen",
    "resetIntro": "Gib deine E-Mail-Adresse ein und wir senden dir einen Link zum Setzen eines neuen Passworts.",
    "resetSendLink": "Reset-Link senden",
    "resetEmailSent": "Falls die E-Mail-Adresse existiert, ist ein Reset-Link unterwegs.",
    "resetCheckInbox": "Schau in deinen Posteingang. Der Link gilt 1 Stunde.",
    "resetBackToLogin": "Zurück zur Anmeldung",
    "resetChooseTitle": "Neues Passwort wählen",
    "resetChooseIntro": "Wähle eines, das du noch nicht verwendet hast.",
    "resetConfirm": "Passwort aktualisieren",
    "resetSuccess": "Dein Passwort wurde aktualisiert. Du kannst dich nun mit dem neuen Passwort anmelden.",
    "resetGoLogin": "Zur Anmeldung",
    "resetInvalidToken": "Dieser Link ist ungültig oder abgelaufen.",
    "resetPasswordUpdated": "Passwort aktualisiert."
  },
  "settings": {
    "changeAvatar": "Avatar ändern",
    "deleteAvatar": "Avatar löschen",
    "changeAvatarDescription": "JPG, GIF oder PNG. Max 4 MB.",
    "language": {
      "title": "Sprache",
      "nl": "NL",
      "en": "EN",
      "de": "DE",
      "fr": "FR"
    },
    "theme": {
      "title": "Thema",
      "light": "Hell",
      "dark": "Dunkel"
    },
    "saveChanges": "Änderungen speichern",
    "updatedUser": "Benutzer aktualisiert",
    "failedUpdateUser": "Fehler beim Aktualisieren des Benutzers",
    "noChangesMade": "Keine Änderungen vorgenommen",
    "sizeToLarge": "Maximale Uploadgröße ist 4~5 MB, wähle ein kleineres Bild!!",
    "loadingImg": "Foto wird geladen",
    "name": "Name",
    "email": "E-Mail",
    "emailReadOnly": "E-Mail ist für dieses Konto schreibgeschützt.",
    "emailChange": {
      "label": "Gib eine neue E-Mail-Adresse ein; wir senden einen Bestätigungslink dorthin. Beim Bestätigen wirst du auf allen Geräten abgemeldet.",
      "button": "Bestätigung senden",
      "checkInbox": "Prüfe den neuen Posteingang auf den Bestätigungslink.",
      "confirmPrompt": "Klicke auf die Schaltfläche unten, um deine neue E-Mail-Adresse zu bestätigen.",
      "confirmButton": "E-Mail-Änderung bestätigen",
      "confirming": "Neue E-Mail wird bestätigt...",
      "confirmedTitle": "E-Mail aktualisiert",
      "confirmedBody": "Deine E-Mail-Adresse wurde geändert. Alle Sitzungen wurden beendet — bitte melde dich mit der neuen E-Mail-Adresse an.",
      "failedTitle": "Bestätigung fehlgeschlagen",
      "invalidToken": "Dieser Bestätigungslink ist ungültig oder abgelaufen.",
      "emailTaken": "Diese E-Mail-Adresse ist bereits in Verwendung.",
      "invalidEmail": "Das sieht nicht nach einer gültigen E-Mail-Adresse aus.",
      "emailSameAsCurrent": "Die neue E-Mail-Adresse ist mit der aktuellen identisch.",
      "emailSendFailed": "Bestätigungs-E-Mail konnte nicht gesendet werden. Versuche es später erneut.",
      "currentPasswordRequired": "Gib dein aktuelles Passwort ein, um deine E-Mail-Adresse zu ändern.",
      "wrongCurrentPassword": "Dein aktuelles Passwort ist falsch.",
      "managedByProvider": "Deine E-Mail-Adresse stammt von dem Dienst, mit dem du dich anmeldest, und kann hier nicht geändert werden."
    },
    "passwordSection": "Passwort",
    "twoFactorSection": "Zwei-Faktor-Authentifizierung",
    "twoFactorStatusOn": "Zwei-Faktor-Authentifizierung ist AN — dein Konto fragt beim Anmelden nach einem Code.",
    "twoFactorStatusOff": "Zwei-Faktor-Authentifizierung ist aus. Füge eine Authenticator-App für eine zusätzliche Sicherheitsebene hinzu.",
    "twoFactorSetup": "Authenticator-App einrichten",
    "twoFactorScanIntro": "Füge das Secret unten deiner Authenticator-App hinzu (Google/Microsoft Authenticator, Authy, …) — scannen oder manuell eingeben — und bestätige mit dem ersten Code.",
    "twoFactorSecretLabel": "Secret (zum Kopieren tippen)",
    "twoFactorCopyUri": "Einrichtungslink kopieren (otpauth://)",
    "twoFactorActivate": "Aktivieren",
    "twoFactorCancel": "Abbrechen",
    "twoFactorEnabled": "Zwei-Faktor-Authentifizierung ist an.",
    "twoFactorDisabled": "Zwei-Faktor-Authentifizierung ist aus.",
    "twoFactorDisable": "Ausschalten",
    "twoFactorDisableIntro": "Gib einen Code aus deiner Authenticator-App (oder einen Wiederherstellungscode) ein, um die Zwei-Faktor-Authentifizierung auszuschalten.",
    "twoFactorRegenerate": "Neue Wiederherstellungscodes",
    "twoFactorRegenerateIntro": "Gib einen Code aus deiner Authenticator-App ein, um deine Wiederherstellungscodes zu ersetzen.",
    "twoFactorRecoveryIntro": "Bewahre diese Wiederherstellungscodes sicher auf — jeder funktioniert einmal, falls du deine Authenticator-App verlierst. Sie werden nur jetzt angezeigt.",
    "twoFactorRecoveryDone": "Ich habe sie gespeichert",
    "twoFactorCopyCodes": "Codes kopieren",
    "twoFactorCopied": "Kopiert.",
    "currentPassword": "Aktuelles Passwort",
    "newPassword": "Neues Passwort",
    "confirmNewPassword": "Neues Passwort bestätigen",
    "changePassword": "Passwort ändern",
    "passwordChanged": "Passwort aktualisiert.",
    "sessionsSection": "Aktive Sitzungen",
    "sessionsEmpty": "Keine weiteren aktiven Sitzungen.",
    "currentSession": "Aktuelle Sitzung",
    "revokeSession": "Abmelden",
    "sessionRevoked": "Sitzung abgemeldet.",
    "sessionExpiresIn": "~{{hours}}Std verbleibend",
    "preferencesSection": "Benachrichtigungseinstellungen",
    "prefNotifySignIn": "E-Mail bei neuer Anmeldung senden",
    "prefNotifyPassword": "E-Mail bei Passwortänderung senden",
    "preferencesSaved": "Einstellungen gespeichert.",
    "dangerSection": "Gefahrenzone",
    "signOutEverywhere": "Überall abmelden",
    "signOutEverywhereConfirm": "Dies beendet jede aktive Sitzung einschließlich dieser. Du musst dich erneut anmelden.",
    "signOutEverywhereDone": "Überall abgemeldet.",
    "deleteAccount": "Konto löschen",
    "deleteAccountConfirm": "Dies löscht dein Konto und alle zugehörigen Daten dauerhaft. Tippe DELETE zum Bestätigen.",
    "deleteAccountDone": "Konto gelöscht."
  },
  "avatar": {
    "uploadFailed": "Avatar konnte nicht hochgeladen werden.",
    "invalidFormat": "Ungültiges Avatar-Format."
  },
  "session": {
    "invalid": "Sitzung ist ungültig.",
    "notFound": "Deine Sitzung wurde beendet. Melde dich erneut an."
  },
  "docs": {
    "documentation": "Dokumentation",
    "room": "Raum",
    "apis": "APIs",
    "syncs": "Syncs",
    "selectApiOrSync": "Wähle eine API oder ein Sync-Event.",
    "api": "API",
    "sync": "Sync",
    "input": "Eingabe",
    "output": "Ausgabe",
    "method": "Methode",
    "rateLimit": "Rate-Limit",
    "unlimited": "Unbegrenzt",
    "rateLimitNotProvided": "Nicht angegeben",
    "auth": "Auth",
    "loginRequired": "Login erforderlich",
    "loginOptional": "Login nicht erforderlich",
    "additionalPermissions": "Zusätzliche Berechtigungen",
    "none": "Keine",
    "requestPayload": "Request-Payload Vorschau",
    "responsePayload": "Response-Payload",
    "clientInput": "Client-Eingabe",
    "serverOutput": "Server-Ausgabe",
    "clientOutput": "Client-Ausgabe",
    "randomPreset": "Zufälliges Preset",
    "runSocket": "Socket ausführen",
    "runHttp": "HTTP ausführen",
    "roomCode": "raumCode",
    "ignoreSelf": "ignoreSelf",
    "roomToJoin": "Raum zum Beitreten",
    "joinRoom": "Raum beitreten",
    "roomToLeave": "Raum zum Verlassen",
    "leaveRoom": "Raum verlassen",
    "joinedRooms": "Beigetretene Räume",
    "noRoomsJoined": "Keine Räume beigetreten",
    "syncReceiverHeader": "Sync-Empfängerraum",
    "syncJoinHeader": "Raum beitreten",
    "syncLeaveHeader": "Raum verlassen",
    "fetchRequestExample": "Fetch-Request Beispiel",
    "socketRequestExample": "Socket-Request Beispiel",
    "syncHttpHowItWorksTitle": "Wie Sync + HTTP auf dieser Seite funktioniert",
    "syncHttpHowItWorksLine1": "HTTP-Sync ruft /sync/... auf und der Server sendet über Socket.io an Nutzer im selben Raum.",
    "syncHttpHowItWorksLine2": "Diese Seite tritt Raum bei",
    "postmanTitle": "Postman / HTTP Hinweise",
    "postmanLine1": "Cookie-Auth-Header verwenden: token=YOUR_SESSION_TOKEN oder Postman-Cookie-Jar nach Login aktiv lassen.",
    "postmanLine2": "Sprach-Header setzen: Accept-Language (bevorzugt) oder X-Language (ebenfalls unterstützt).",
    "postmanLine3": "API-URL-Format: /api/{page}/{name}/{version} und Sync-URL-Format: /sync/{page}/{name}/{version}.",
    "httpGuideTitle": "HTTP Verwendung",
    "httpGuideLine1": "Verwende HTTP für einmalige API-Aufrufe oder um einen Sync-Broadcast von Backend-Routen auszulösen.",
    "httpGuideLine2": "Für geschützte Routen zuerst authentifizieren, damit Cookie oder Token mitgesendet wird.",
    "httpGuideLine3": "Setze den Header Accept-Language, um lokalisierte Fehlermeldungen zu steuern.",
    "httpGuideLine4": "Routenformat: /api/{page}/{name}/{version} und /sync/{page}/{name}/{version}.",
    "socketGuideTitle": "Socket Verwendung",
    "socketGuideLine1": "Verwende den Socket-Modus für Echtzeit-Callbacks und raumbasierte Broadcasts.",
    "socketGuideLine2": "Tritt zuerst einem Raum bei, damit du das gesendete Sync-Event empfangen kannst.",
    "socketGuideLine3": "Standard-Dokumentationsraum",
    "socketGuideLine4": "Nutze ignoreSelf, um an alle außer den aktuellen Client zu senden.",
    "status": "Status",
    "invalidJsonInput": "Ungültige JSON-Eingabe",
    "httpApiRequestFailed": "HTTP-API-Anfrage fehlgeschlagen",
    "syncRequestTimedOut": "Sync-Anfrage Zeitüberschreitung",
    "httpSyncRequestFailed": "HTTP-Sync-Anfrage fehlgeschlagen",
    "roomCodeRequired": "Raumcode ist erforderlich",
    "joinedRoom": "Raum beigetreten",
    "leftRoom": "Raum verlassen",
    "failedToJoinRoom": "Beitritt zum Raum fehlgeschlagen",
    "failedToLeaveRoom": "Verlassen des Raums fehlgeschlagen",
    "failedToLoadDocumentation": "Dokumentation konnte nicht geladen werden.",
    "emptyResponseBody": "Leerer Antwortinhalt",
    "emptyErrorResponseBody": "Leerer Fehler-Antwortinhalt",
    "invalidJsonResponse": "Antwort war kein gültiges JSON",
    "apisSmall": "APIS",
    "syncsSmall": "SYNCS",
    "doc": "DOKUM",
    "syncSmall": "SYNC"
  },
  "admin": {
    "title": "Admin"
  },
  "confirm": {
    "type": "Tippen Sie ",
    "toConfirm": " zur Bestätigung:",
    "cancel": "Abbrechen",
    "confirm": "Bestätigen"
  },
  "dashboard": {
    "title": "Dashboard",
    "description": "Dies ist die Dashboard-Seite. Sie wird über den dateibasierten Router des Frameworks auf /dashboard abgebildet.",
    "welcome": "Willkommen zurück, {{name}}",
    "welcomeSubtitle": "Hier ist eine kurze Übersicht über deinen Arbeitsbereich.",
    "lastSignIn": "Letzte Anmeldung {{when}}",
    "lastSignInFirst": "Willkommen zu deiner ersten Sitzung.",
    "statsApiCalls": "API-Aufrufe heute",
    "statsActiveSessions": "Aktive Sitzungen",
    "statsRecentErrors": "Aktuelle Fehler",
    "statsUptime": "Verfügbarkeit",
    "quickActions": "Schnellaktionen",
    "openSettings": "Einstellungen",
    "openPlayground": "Playground",
    "signOut": "Abmelden",
    "systemStatus": "Systemstatus",
    "statusConnected": "Alle Systeme funktionieren",
    "statusReconnecting": "Wird wiederverbunden…",
    "statusDisconnected": "Verbindung getrennt",
    "recentActivity": "Letzte Aktivität",
    "recentActivityEmpty": "Noch keine Aktivität."
  },
  "home": {
    "settings": "Einstellungen",
    "signOut": "Abmelden"
  },
  "errorPage": {
    "goBack": "← Zurück",
    "home": "Startseite",
    "developerDetails": "Entwickler-Details",
    "errorLabel": "Fehler"
  },
  "examples": {
    "title": "LuckyStack Beispiele",
    "subtitle": "Interaktive Demo aller Framework-Funktionen",
    "docs": "Dokumentation",
    "userInfo": "Benutzerinfo",
    "logout": "Abmelden",
    "notLoggedIn": "Nicht eingeloggt",
    "goToLogin": "Zum Login gehen",
    "realTimeSync": "Echtzeit-Synchronisation",
    "openTabs": "Zum Testen in 2 Tabs öffnen",
    "publicApi": "Öffentliche API",
    "noLoginNeeded": "Kein Login erforderlich",
    "callApi": "API aufrufen",
    "toggleAdmin": "Admin umschalten",
    "requiresLogin": "Login erforderlich",
    "toggle": "Umschalten",
    "adminOnly": "Nur für Admins",
    "adminTrueRequired": "admin: true erforderlich",
    "apiResults": "API-Ergebnisse",
    "apiResultsDesc": "Klicken Sie auf eine API-Schaltfläche, um hier Ergebnisse zu sehen"
  },
  "template": {
    "logout": "Abmelden",
    "socketStatus": "Socket-Status:"
  }
}