GAMES (Nuxt → RN migration): - New components/games/GameOverScreen.tsx — slide-in + fade overlay Props: score, bestScore, gameName, onRetry, onExit, isNewBest - New lib/gameScores.ts — AsyncStorage helpers rebreak_best_snake (higher=better), _tetris (higher=better), _memory (lower=better, inverted isNewBest) - UrgeGames.tsx wired: snake-collision/tetris-topout/memory-finish trigger GameOverScreen with retry/exit + best-score persist - TicTacToe NICHT — round-aggregation game hat eigenen Fertig-Flow - 7 i18n keys (gameOver.* DE+EN, 5 motivational texts statisch aus pool) LYRA (markdown-bug fix): - User-Report: Lyra antwortet mit ** in mobile-app, verwirrt user - Beide system-prompts (COACH_SYSTEM_PROMPT für SOS, COACH_CASUAL_SYSTEM_PROMPT für Coach) bekommen "ANTWORTFORMAT - KRITISCH"-section: NIE Markdown (kein **bold**, _italic_, #-Headings, -Bullets) — Klartext only - Reason: Mobile-App-bubbles rendern markdown nicht → User sieht raw `**text**` Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
737 lines
33 KiB
JSON
737 lines
33 KiB
JSON
{
|
||
"common": {
|
||
"loading": "Einen Moment...",
|
||
"cancel": "Abbrechen",
|
||
"continue": "Weiter",
|
||
"back": "Zurück",
|
||
"error": "Fehler",
|
||
"success": "Erfolgreich",
|
||
"ok": "OK",
|
||
"confirm": "Bestätigen",
|
||
"retry": "Erneut versuchen",
|
||
"unknown_error": "Unbekannter Fehler"
|
||
},
|
||
"auth": {
|
||
"welcomeBack": "Willkommen zurück",
|
||
"signinSubtitle": "Melde dich an, um weiterzumachen.",
|
||
"signin": "Anmelden",
|
||
"signingIn": "Einen Moment...",
|
||
"signup": "Registrieren",
|
||
"signupTitle": "Konto erstellen",
|
||
"signupSubtitle": "Werde Teil der Community.",
|
||
"signOut": "Abmelden",
|
||
"email": "E-Mail",
|
||
"emailPlaceholder": "E-Mail",
|
||
"emailRequired": "E-Mail *",
|
||
"password": "Passwort",
|
||
"passwordPlaceholder": "Passwort",
|
||
"passwordRequired": "Passwort * (min. 8 Zeichen)",
|
||
"passwordMin8": "Passwort muss mindestens 8 Zeichen haben.",
|
||
"newPassword": "Neues Passwort",
|
||
"firstName": "Vorname",
|
||
"lastName": "Nachname",
|
||
"nickname": "Benutzername",
|
||
"nicknamePlaceholder": "Benutzername * (sichtbar für andere)",
|
||
"noAccount": "Noch kein Konto?",
|
||
"alreadyRegistered": "Bereits registriert?",
|
||
"fillRequired": "Bitte alle Pflichtfelder ausfüllen.",
|
||
"googleSignin": "Mit Google anmelden",
|
||
"appleSignin": "Mit Apple anmelden",
|
||
"googleSignup": "Mit Google registrieren",
|
||
"appleSignup": "Mit Apple registrieren",
|
||
"orWithEmail": "oder mit E-Mail",
|
||
"forgotPassword": "Passwort vergessen?",
|
||
"resetPasswordTitle": "Passwort zurücksetzen",
|
||
"resetPasswordSubtitle": "Gib deine E-Mail-Adresse ein und wir senden dir einen Link zum Zurücksetzen.",
|
||
"resetPasswordSend": "Link senden",
|
||
"resetPasswordSent": "E-Mail gesendet",
|
||
"resetPasswordSentDesc": "Prüfe dein Postfach. Der Link ist 60 Minuten gültig.",
|
||
"resetPasswordSentDescPrefix": "Prüfe dein Postfach für ",
|
||
"resetPasswordSentDescSuffix": ". Der Link ist 60 Minuten gültig.",
|
||
"backToLogin": "← Zurück zum Login",
|
||
"backToLoginPlain": "Zurück zum Login",
|
||
"backToSignup": "← Zurück zur Registrierung",
|
||
"chooseAvatar": "Avatar wählen",
|
||
"privacyNotice": "Deine Daten werden sicher auf Servern in Deutschland gespeichert. Wir verkaufen keine Daten an Dritte.",
|
||
"acceptTerms": "Ich akzeptiere die",
|
||
"acceptTermsSuffix": " und habe die Datenschutzerklärung gelesen.",
|
||
"termsLink": "Nutzungsbedingungen",
|
||
"pleaseAcceptTerms": "Bitte akzeptiere die Nutzungsbedingungen.",
|
||
"confirmEmailTitle": "E-Mail bestätigen",
|
||
"confirmEmailDesc": "Wir haben einen 6-stelligen Code an %{email} gesendet.",
|
||
"confirmEmailLine1": "Wir haben einen 6-stelligen Code an",
|
||
"confirmEmailLine2": "gesendet.",
|
||
"confirmBtn": "Bestätigen",
|
||
"confirmed": "Bestätigt! Du wirst weitergeleitet...",
|
||
"confirming": "Anmeldung wird bestätigt...",
|
||
"confirmSuccess": "Erfolgreich angemeldet!",
|
||
"confirmTimeout": "Zeitüberschreitung – bitte erneut versuchen.",
|
||
"confirmFailed": "Bestätigung fehlgeschlagen.",
|
||
"resend": "Erneut senden",
|
||
"resendCooldown": "Erneut senden (%{seconds}s)",
|
||
"noCode": "Keinen Code erhalten?",
|
||
"deviceLimitTitle": "Geräte-Limit erreicht",
|
||
"deviceLimitDesc": "Dein aktueller Plan erlaubt nicht mehr Geräte. Gib ein anderes Gerät frei oder upgrade deinen Plan, um auf diesem Gerät weiterzumachen.",
|
||
"deviceLimitUpgrade": "Plan upgraden",
|
||
"toLogin": "Zur Anmeldung",
|
||
"oauthFailed": "Anmeldung fehlgeschlagen",
|
||
"loginFailed": "Anmeldung fehlgeschlagen",
|
||
"registerFailed": "Registrierung fehlgeschlagen"
|
||
},
|
||
"landing": {
|
||
"appName": "Rebreak",
|
||
"tagline": "Du gehst nicht allein.",
|
||
"start": "Loslegen",
|
||
"version": "v0.1.0 — RN Migration Phase 1 Skeleton"
|
||
},
|
||
"splash": {
|
||
"tagline": "You will never walk alone!",
|
||
"subtitle": "Zusammen schaffen wir das.",
|
||
"madeInGermany": "Made in Germany"
|
||
},
|
||
"appHeader": {
|
||
"appName": "ReBreak",
|
||
"sosLabel": "SOS",
|
||
"sosTagline": "wir sind für dich da",
|
||
"sosSubtitle": "Hier lang wenn du Hilfe brauchst",
|
||
"editProfile": "Profil bearbeiten",
|
||
"settings": "Einstellungen",
|
||
"signOut": "Abmelden"
|
||
},
|
||
"headerMenu": {
|
||
"profile": "Profil",
|
||
"settings": "Einstellungen",
|
||
"games": "ReBreak Games",
|
||
"debug": "Debug",
|
||
"logout": "Abmelden"
|
||
},
|
||
"tabs": {
|
||
"home": "Home",
|
||
"chat": "Chat",
|
||
"coach": "Coach",
|
||
"blocker": "Blocker",
|
||
"mail": "Mail",
|
||
"profile": "Profil"
|
||
},
|
||
"games": {
|
||
"title": "ReBreak Games",
|
||
"subtitle": "Casual spielen ohne SOS — Memory, Snake, Tetris und Tic-Tac-Toe.",
|
||
"back_to_picker": "Spiele",
|
||
"last_score": "Score: {{score}}",
|
||
"skeleton_footer": "Skeleton — Highscore-Leaderboard kommt in Phase C"
|
||
},
|
||
"home": {
|
||
"tagline": "Du gehst nicht allein.",
|
||
"start": "Loslegen",
|
||
"greeting_morning": "Guten Morgen",
|
||
"greeting_day": "Guten Tag",
|
||
"greeting_evening": "Guten Abend",
|
||
"streak_days_one": "Tag clean",
|
||
"streak_days_other": "Tage clean",
|
||
"streak_start": "Starte deinen ersten Tag",
|
||
"quote_of_day": "Gedanke des Tages",
|
||
"quick_access": "Schnellzugriff",
|
||
"stats_urges": "Impulse",
|
||
"stats_chats": "Gespräche",
|
||
"stats_mails": "Mails blockiert"
|
||
},
|
||
"coach": {
|
||
"title": "Lyra",
|
||
"subtitle": "Dein CBT-Coach",
|
||
"welcome": "Hallo! Ich bin Lyra, dein persönlicher Coach. Wie geht es dir heute? Ich bin hier, um dir zuzuhören und zu helfen.",
|
||
"input_placeholder": "Schreib mir...",
|
||
"new_chat": "Neues Gespräch",
|
||
"lyra": "Lyra",
|
||
"modeBadge": {
|
||
"coach": "Coach",
|
||
"sos": "SOS"
|
||
},
|
||
"placeholder": "Was beschäftigt dich?",
|
||
"speaking": "Lyra spricht...",
|
||
"recording": "Aufnahme läuft...",
|
||
"transcribing": "Wird verarbeitet...",
|
||
"feedback_saved": "Feedback gespeichert",
|
||
"welcome_back": "Willkommen zurück",
|
||
"online": "online",
|
||
"thinking": "schreibt …",
|
||
"error": "Etwas ist schiefgelaufen. Bitte versuche es erneut."
|
||
},
|
||
"blocker": {
|
||
"title": "Blocker",
|
||
"subtitle": "208.000+ Domains blockiert",
|
||
"status_active": "Aktiv",
|
||
"status_inactive": "Inaktiv",
|
||
"filter_label": "Gambling-Filter",
|
||
"filter_active_desc": "Alle Gambling-Seiten werden blockiert",
|
||
"filter_inactive_desc": "Filter ist deaktiviert",
|
||
"tamper_title": "Manipulationsschutz",
|
||
"tamper_desc": "Der Filter ist gegen einfaches Deaktivieren gesichert. Eine Entsperrung erfordert eine 6-Stunden-Abkühlphase.",
|
||
"custom_domains": "Eigene Domains",
|
||
"add_domain": "Hinzufügen",
|
||
"help_link": "Hilfe & FAQ zum Blocker",
|
||
"status_approved": "Genehmigt",
|
||
"status_rejected": "Abgelehnt",
|
||
"status_pending": "Ausstehend",
|
||
|
||
"add_sheet_title": "Domain blockieren",
|
||
"add_sheet_label": "Domain",
|
||
"add_sheet_placeholder": "z.B. bet365.com",
|
||
"add_sheet_invalid": "Bitte gültige Domain eingeben (z.B. example.com)",
|
||
"add_sheet_warning_free": "Diese Domain bleibt dauerhaft auf deiner Liste — du kannst sie später nicht entfernen.",
|
||
"add_sheet_warning_pro": "Diese Domain ist permanent. Du kannst sie zur globalen Blocklist freigeben — dann wird der Slot frei und sie schützt alle ReBreak-User.",
|
||
"add_sheet_confirm_permanent": "Ich verstehe dass diese Domain permanent ist.",
|
||
"add_sheet_add_failed": "Hinzufügen fehlgeschlagen.",
|
||
"add_sheet_already_global": "%{domain} steht bereits in der globalen Sperrliste — kein Slot nötig.",
|
||
|
||
"cooldown_banner_title": "Cooldown läuft",
|
||
|
||
"deactivation_actionsheet_title": "24-Stunden-Cooldown starten?",
|
||
"deactivation_actionsheet_message": "Schutz bleibt während dieser Zeit aktiv. Du kannst jederzeit abbrechen.",
|
||
"deactivation_start_cta": "Cooldown starten",
|
||
"deactivation_failed_msg": "Cooldown konnte nicht gestartet werden.",
|
||
"deactivation_heading": "Bevor du deaktivierst",
|
||
"deactivation_title": "Wir verstehen das.",
|
||
"deactivation_intro": "Bevor du den Schutz abschaltest, hier was du wissen solltest:",
|
||
"deactivation_bullet1_title": "24 Stunden Cooldown",
|
||
"deactivation_bullet1_text": "Der Schutz bleibt 24h aktiv, selbst wenn du den Cooldown startest. Diese Zeit gibt dir Raum den Drang abklingen zu lassen.",
|
||
"deactivation_bullet2_title": "Du kannst jederzeit abbrechen",
|
||
"deactivation_bullet2_text": "Wenn der Drang nachlässt: ein Tap und der Cooldown ist weg. Der Schutz bleibt einfach an.",
|
||
"deactivation_bullet3_title": "Andere Werkzeuge sind da",
|
||
"deactivation_bullet3_text": "Atemübung, Lyra, deine Streak — alles bleibt verfügbar während du wartest.",
|
||
"deactivation_breathe_cta": "Jetzt 3 min atmen",
|
||
"deactivation_start_anyway": "Cooldown trotzdem starten",
|
||
"deactivation_starting": "Cooldown wird gestartet…",
|
||
"deactivation_cancel_failed": "Cooldown konnte nicht abgebrochen werden.",
|
||
|
||
"domain_section_title": "Eigene Domains",
|
||
"domain_add_a11y": "Domain hinzufügen",
|
||
"domain_limit_title": "Limit erreicht",
|
||
"domain_limit_desc": "Pro: 208k+ Domains, Refill bei Freigabe — tippe für Details",
|
||
"domain_empty": "Noch keine eigenen Domains.\nTippe + um eine hinzuzufügen.",
|
||
"domain_badge_voting": "Voting",
|
||
"domain_badge_pruefung": "Prüfung",
|
||
"domain_badge_rejected": "Abgelehnt",
|
||
"domain_badge_active": "Aktiv",
|
||
"domain_btn_freigeben": "Freigeben",
|
||
"domain_btn_erneut": "Erneut",
|
||
"domain_btn_in_abstimmung": "In Abstimmung",
|
||
"domain_btn_rebreak_prueft": "ReBreak prüft",
|
||
"domain_confirm_legend_resubmit": "Erneut an ReBreak senden?",
|
||
"domain_confirm_legend_first": "Domain an ReBreak senden?",
|
||
"domain_confirm_community_resubmit": "Erneut zur Abstimmung freigeben?",
|
||
"domain_confirm_community_first": "Domain zur Abstimmung freigeben?",
|
||
"domain_confirm_legend_message": "%{domain} wird direkt an das ReBreak-Team weitergeleitet und manuell geprüft.",
|
||
"domain_confirm_community_message": "%{domain} wird zur Community-Abstimmung freigegeben (Yes/No-Voting).",
|
||
"domain_success_legend_title": "Domain eingereicht",
|
||
"domain_success_community_title": "Domain in Abstimmung",
|
||
"domain_success_legend_message": "Das ReBreak-Team prüft die Domain manuell. Du bekommst eine Benachrichtigung beim Ergebnis.",
|
||
"domain_success_community_message": "Die Community kann jetzt abstimmen. Du wirst beim Ergebnis benachrichtigt.",
|
||
|
||
"upgrade_alert_title": "Pro-Upgrade",
|
||
"upgrade_alert_desc": "Stripe-Checkout kommt in Step 11.",
|
||
|
||
"protection_card_title": "ReBreak-Schutz",
|
||
"protection_card_locked_title": "ReBreak-Schutz aktiv",
|
||
"protection_subtitle_inactive": "Tippe um den Schutz zu aktivieren",
|
||
"protection_subtitle_cooldown": "Cooldown läuft — Schutz weiter aktiv",
|
||
"protection_subtitle_free": "Filter aktiv — %{count} eigene Domains",
|
||
"protection_subtitle_legend": "Geschützt vor 208.000+ Domains + bis zu 10 eigenen",
|
||
"protection_subtitle_pro": "Geschützt vor 208.000+ Domains + 5 eigenen",
|
||
"protection_settings_a11y": "Schutz-Einstellungen",
|
||
"protection_stat_domains": "Domains",
|
||
"protection_stat_method": "Methode",
|
||
"protection_stat_method_dns": "DNS",
|
||
"protection_stat_method_native": "Native",
|
||
"protection_stat_status": "Status",
|
||
"protection_stat_status_live": "Live",
|
||
|
||
"activate_url_failed_title": "URL-Filter konnte nicht aktiviert werden",
|
||
"activate_url_failed_msg": "Unbekannter Fehler.\nDu kannst es nochmal versuchen oder System-Einstellungen prüfen.",
|
||
"activate_settings_btn": "Einstellungen",
|
||
"activate_app_lock_failed_title": "App-Lock konnte nicht aktiviert werden",
|
||
"activate_app_lock_failed_msg": "Bildschirmzeit-Berechtigung wurde verweigert. Du kannst es nochmal versuchen.",
|
||
"sync_list_failed_title": "Filter-Liste konnte nicht geladen werden",
|
||
"sync_list_failed_msg": "Bitte später nochmal versuchen.",
|
||
"activation_failed_title": "Aktivierung fehlgeschlagen",
|
||
|
||
"details_done": "Fertig",
|
||
"details_title": "Schutz-Details",
|
||
"details_active_title": "Schutz aktiv",
|
||
"details_domains_blocked": "%{value} Domains blockiert",
|
||
"details_layers_heading": "Aktive Layer",
|
||
"details_layer_url_label": "Network-Filter",
|
||
"details_layer_url_desc": "Blockt Gambling-Domains system-weit (NEFilter Extension)",
|
||
"details_layer_applock_label": "App-Lock",
|
||
"details_layer_applock_desc": "ReBreak kann nicht impulsiv gelöscht werden",
|
||
"details_layer_vpn_label": "VPN-Filter",
|
||
"details_layer_vpn_desc": "Lokaler DNS-Filter via VpnService",
|
||
"details_layer_a11y_label": "Browser-Filter",
|
||
"details_layer_a11y_desc": "Erkennt URL-Eingaben in Browser-Apps",
|
||
"details_layer_tamper_label": "Tamper-Lock",
|
||
"details_layer_tamper_desc": "Watchdog gegen externes Deaktivieren",
|
||
"details_lyra_cta_title": "Brauchst du den Schutz nicht mehr?",
|
||
"details_lyra_cta_subtitle": "Sprich mit Lyra darüber — sie hört zu.",
|
||
"details_deactivate_link": "Ich will trotzdem deaktivieren",
|
||
|
||
"layers_url_filter_title": "URL-Filter",
|
||
"layers_url_filter_subtitle_active": "System-weiter Filter aktiv",
|
||
"layers_url_filter_subtitle_inactive": "Blockt Gambling-Seiten in Safari + Apps",
|
||
"layers_app_lock_title": "App-Lock",
|
||
"layers_app_lock_subtitle_active": "Familienzugriff aktiv",
|
||
"layers_app_lock_subtitle_inactive": "Verhindert dass du ReBreak im Impuls löschst",
|
||
"layers_app_lock_warning": "Sobald aktiv kannst du den Schutz nur über einen 24-Stunden-Cooldown abschalten. Das ist gewollt.",
|
||
|
||
"kpi_global_label": "Geblockte Domains weltweit",
|
||
"kpi_global_subtitle": "Aktive Einträge in der globalen Blockliste",
|
||
"delta_week": "diese Woche",
|
||
"delta_month": "diesen Monat",
|
||
"kpi_submissions_title": "Deine eingereichten Domains",
|
||
"kpi_submissions_subtitle": "Status deiner Beiträge zur globalen Liste",
|
||
"kpi_my_submissions": "insgesamt",
|
||
"kpi_status_active": "aktiv",
|
||
"kpi_status_vote": "im Vote",
|
||
"kpi_status_review": "in Prüfung",
|
||
"kpi_in_vote": "Im Vote",
|
||
"kpi_in_review": "In Prüfung",
|
||
"kpi_avg_per_user": "Ø Domains pro User",
|
||
"kpi_avg_wait": "Ø Wartezeit",
|
||
"kpi_days_suffix": "Tage",
|
||
|
||
"faq_heading": "Häufige Fragen",
|
||
"faq1_q": "Wie funktioniert der Schutz?",
|
||
"faq1_a": "Der Schutz läuft direkt im iOS-System als Inhaltsfilter. Glücksspielseiten werden lokal auf deinem Gerät blockiert — kein Datenverkehr verlässt dein iPhone.",
|
||
"faq2_q": "Wie viele Seiten werden blockiert?",
|
||
"faq2_a": "Über 208.000 Domains aus einer kuratierten globalen Blockliste — Online-Casinos, Sportwetten, Glücksspiel-Plattformen und verwandte Seiten. Die Liste wird regelmäßig aktualisiert.",
|
||
"faq3_q": "Kann ich eigene Domains hinzufügen?",
|
||
"faq3_a": "Ja. Über die Domain-Liste auf der Blocker-Seite kannst du eigene Domains hinzufügen, die zusätzlich zur globalen Liste blockiert werden.",
|
||
"faq4_q": "Warum kann ich den Schutz nicht sofort abschalten?",
|
||
"faq4_a": "Wenn du im Drang bist, willst du oft schnell deaktivieren — und es danach bereuen. Der 24-Stunden-Cooldown gibt dir Zeit, den Drang abklingen zu lassen. Du kannst den Cooldown jederzeit abbrechen — der Schutz bleibt dann einfach an.",
|
||
|
||
"more_info_title": "Wie funktioniert der Cooldown?"
|
||
},
|
||
"mail": {
|
||
"title": "Mail-Schutz",
|
||
"subtitle": "Gambling-Mails automatisch blockieren",
|
||
"plan_free": "Free",
|
||
"stat_accounts": "Postfach",
|
||
"stat_domains": "Domains",
|
||
"stat_interval": "Scan-Intervall",
|
||
"connect_title": "Verbinde dein Postfach",
|
||
"connect_desc": "Rebreak scannt automatisch nach Gambling-Mails und blockiert sie — ohne deine E-Mails zu lesen.",
|
||
"connect_cta": "Jetzt verbinden",
|
||
"privacy_1": "Nur Betreff + Absender werden geprüft",
|
||
"privacy_2": "Kein Zugriff auf Mail-Inhalte",
|
||
"privacy_3": "DSGVO-konform, Server in DE",
|
||
"providers_title": "Unterstützte Anbieter",
|
||
"provider_other": "Andere",
|
||
"empty_title": "Noch keine Mails blockiert",
|
||
"empty_subtitle": "Verbinde dein Postfach, damit Rebreak automatisch schützt.",
|
||
|
||
"connect_sheet_title": "Postfach verbinden",
|
||
"connect_sheet_subtitle": "Wähle deinen E-Mail-Anbieter. Rebreak löscht Gambling-Mails automatisch — Inhalte werden nie gelesen.",
|
||
|
||
"provider_gmail": "Gmail",
|
||
"provider_icloud": "iCloud Mail",
|
||
"provider_outlook": "Outlook",
|
||
"provider_yahoo": "Yahoo Mail",
|
||
"provider_gmx": "GMX / Web.de",
|
||
|
||
"app_password_required_title": "App-Passwort erforderlich",
|
||
"app_password_guide_gmail": "Gmail erfordert ein App-spezifisches Passwort (kein normales Google-Passwort). Aktiviere 2FA und erstelle ein App-Passwort unter myaccount.google.com/apppasswords.",
|
||
"app_password_guide_icloud": "iCloud erfordert ein App-spezifisches Passwort. Gehe zu appleid.apple.com → Anmelden → App-spezifische Passwörter.",
|
||
"app_password_guide_outlook": "Outlook mit Microsoft-Konto: Aktiviere 2FA und erstelle ein App-Passwort unter account.microsoft.com/security.",
|
||
"app_password_guide_yahoo": "Yahoo erfordert ein App-Passwort. Aktiviere 2FA und erstelle es unter login.yahoo.com/account/security.",
|
||
"app_password_guide_gmx": "GMX / Web.de: Aktiviere IMAP in den Einstellungen und verwende dein normales Passwort oder ein App-Passwort falls 2FA aktiv.",
|
||
"app_password_guide_other": "Gib die IMAP-Zugangsdaten deines E-Mail-Anbieters ein. App-Passwort empfohlen wenn vorhanden.",
|
||
"app_password_open_link": "Jetzt App-Passwort erstellen",
|
||
|
||
"form_email_label": "E-Mail-Adresse",
|
||
"form_email_placeholder": "deine@email.de",
|
||
"form_password_label": "App-Passwort",
|
||
"form_password_placeholder": "App-Passwort (nicht dein Login-Passwort)",
|
||
"form_privacy_note": "Dein Passwort wird AES-verschlüsselt gespeichert. Inhalte deiner Mails werden nie gelesen — nur Betreff und Absender.",
|
||
"form_connect_btn": "Postfach verbinden",
|
||
"form_fields_required": "E-Mail und Passwort sind erforderlich.",
|
||
"connect_failed": "Verbindung fehlgeschlagen. Prüfe deine Zugangsdaten.",
|
||
|
||
"section_accounts": "Postfächer",
|
||
"add_account_a11y": "Postfach hinzufügen",
|
||
|
||
"empty_state_title": "Kein Postfach verbunden",
|
||
"empty_state_subtitle": "Verbinde dein erstes Postfach — Rebreak löscht Gambling-Mails automatisch, bevor du sie siehst.",
|
||
"empty_state_cta": "Erstes Postfach verbinden",
|
||
|
||
"account_active": "Aktiv",
|
||
"account_inactive": "Inaktiv",
|
||
"account_last_scan": "Zuletzt vor %{time}",
|
||
"account_never_scanned": "Noch nicht gescannt",
|
||
"account_just_now": "gerade eben",
|
||
"account_stat_blocked": "Blockiert",
|
||
"account_stat_scanned": "Gescannt",
|
||
"account_stat_block_rate": "Block-Rate",
|
||
"account_disconnect_confirm_title": "Postfach trennen?",
|
||
"account_disconnect_confirm_message": "%{email} wird getrennt und alle Scan-Daten werden gelöscht.",
|
||
"account_disconnect_confirm_btn": "Trennen",
|
||
|
||
"stats_blocked": "Blockiert",
|
||
"stats_accounts": "Postfächer",
|
||
"stats_next_scan": "Nächster Scan",
|
||
"stats_next_scan_soon": "gleich",
|
||
"stats_mode": "Modus",
|
||
"stats_account_summary": "über %{count} Postfach/Postfächer",
|
||
"scheduled": "Geplant",
|
||
"account_of_scanned": "von %{scanned} gescannt",
|
||
"activity_log_count": "%{count} Mail(s) blockiert",
|
||
|
||
"connect_success_title": "Postfach verbunden",
|
||
"connect_success_message": "Rebreak scannt ab jetzt automatisch nach Gambling-Mails.",
|
||
|
||
"add_account": "Postfach hinzufügen",
|
||
"section_accounts_count": "%{used} von %{max} verbunden",
|
||
"section_accounts_count_unlimited": "%{used} verbunden · unbegrenzt",
|
||
"live": "Live",
|
||
"disconnect": "Trennen",
|
||
"loading": "Lädt…",
|
||
"app_password_placeholder": "App-Passwort",
|
||
|
||
"scan_interval_label": "Scan-Intervall",
|
||
"realtime_desc": "Echtzeit-Blockierung via IMAP IDLE",
|
||
"free_scan_interval_hint": "Free-Plan: fest 4h. Upgrade für 1h.",
|
||
|
||
"account_change_password": "Passwort ändern",
|
||
"edit_account_title": "Passwort aktualisieren",
|
||
"edit_account_subtitle": "Gib das neue App-Passwort für %{email} ein. Das alte Passwort wird ersetzt.",
|
||
"edit_account_save": "Speichern",
|
||
|
||
"activity_log_title": "Kürzlich blockiert",
|
||
"activity_log_subtitle": "In den letzten 24h blockierte Mails",
|
||
"activity_log_empty": "Keine Mails in den letzten 24h blockiert",
|
||
"activity_log_more": "+ %{count} weitere",
|
||
"activity_no_subject": "(kein Betreff)",
|
||
|
||
"upgrade_alert_title": "Mehr Postfächer",
|
||
"upgrade_alert_desc": "Upgrade auf Pro für bis zu 3 Postfächer, auf Legend für unbegrenzte Postfächer."
|
||
},
|
||
"settings": {
|
||
"title": "Einstellungen",
|
||
"account_section": "Konto",
|
||
"prefs_section": "Einstellungen",
|
||
"danger_section": "Danger Zone",
|
||
"edit_profile": "Profil bearbeiten",
|
||
"devices": "Geräte",
|
||
"devices_desc": "Registrierte Geräte verwalten",
|
||
"subscription": "Abonnement",
|
||
"subscription_desc": "Plan & Upgrade-Pfad",
|
||
"plan_free": "Free",
|
||
"push_notifications": "Push-Benachrichtigungen",
|
||
"streak_reminders": "Streak-Erinnerungen",
|
||
"language": "Sprache",
|
||
"language_desc": "Deutsch / Englisch",
|
||
"language_current": "Deutsch",
|
||
"upgrade_cta": "Auf Pro upgraden — 29 €/Jahr",
|
||
"delete_account": "Konto löschen",
|
||
"delete_desc": "Alle Daten werden unwiderruflich gelöscht.",
|
||
"sign_out": "Abmelden",
|
||
"coming_soon_title": "Coming soon",
|
||
"coming_soon_desc": "Settings werden in Phase 3 wired-up. Aktuell nur Skeleton.",
|
||
"soon_badge": "Soon",
|
||
"skeleton_footer": "Settings-Skeleton — siehe ops/UI_MIGRATION_PLAN.md",
|
||
"section_profile": "Profil",
|
||
"profile_edit": "Nickname & Avatar",
|
||
"profile_edit_desc": "Nickname, Avatar-Bild, persönliche Daten",
|
||
"profile_avatar": "Avatar wählen",
|
||
"profile_avatar_desc": "Preset-Library oder eigenes Foto",
|
||
"section_theme": "Theme & Sprache",
|
||
"theme": "Theme",
|
||
"theme_desc": "Hell / Dunkel / System",
|
||
"section_notifications": "Benachrichtigungen",
|
||
"notifications_push": "Push-Benachrichtigungen",
|
||
"notifications_push_desc": "Einzelne Kategorien an/aus",
|
||
"notifications_streak": "Streak-Erinnerungen",
|
||
"notifications_streak_desc": "Tägliche Anstöße zum Dranbleiben",
|
||
"section_devices": "Geräte & Abo",
|
||
"section_lyra": "Lyra (Legend)",
|
||
"lyra_voice": "Lyra-Stimme",
|
||
"lyra_voice_desc": "Voice-Picker — verfügbar im Legend-Plan",
|
||
"lyra_voice_only_legend": "Nur im Legend-Plan verfügbar",
|
||
"theme_picker_title": "Theme wählen",
|
||
"theme_system": "System",
|
||
"theme_light": "Hell",
|
||
"theme_dark": "Dunkel",
|
||
"language_picker_title": "Sprache wählen",
|
||
"language_de": "Deutsch",
|
||
"language_en": "English",
|
||
"lyra_voice_picker_title": "Lyra-Stimme wählen",
|
||
"lyra_voice_sarah": "Sarah (warm)",
|
||
"lyra_voice_aria": "Aria (ruhig)",
|
||
"lyra_voice_charlotte": "Charlotte (klar)",
|
||
"lyra_voice_alice": "Alice (nüchtern)",
|
||
"lyra_voice_bill": "Bill (tief)",
|
||
"section_debug": "Debug",
|
||
"debug_llm": "LLM-Provider",
|
||
"debug_llm_desc": "Modell & Prompt-Tuning (DEV)",
|
||
"debug_tts": "TTS-Provider",
|
||
"debug_tts_desc": "Cartesia / ElevenLabs / Gemini (DEV)",
|
||
"devices_page_title": "Registrierte Geräte",
|
||
"devices_slots": "Geräte-Slots",
|
||
"devices_slots_desc": "Dein {{plan}}-Plan erlaubt diese Anzahl gleichzeitiger Geräte.",
|
||
"devices_this_device": "Dieses Gerät",
|
||
"devices_since": "seit",
|
||
"devices_just_now": "gerade aktiv",
|
||
"devices_mins_ago": "vor {{count}}m",
|
||
"devices_hours_ago": "vor {{count}}h",
|
||
"devices_days_ago": "vor {{count}}d",
|
||
"devices_empty": "Keine Geräte registriert",
|
||
"devices_hint": "Geräte, die du entfernst, werden beim nächsten Login wieder registriert. Dieses Gerät kann nicht entfernt werden, solange du eingeloggt bist.",
|
||
"devices_remove_title": "Gerät entfernen",
|
||
"devices_remove_desc": "Das Gerät wird freigegeben. Es kann sich beim nächsten Login erneut registrieren.",
|
||
"devices_remove_confirm": "Entfernen"
|
||
},
|
||
"device_limit": {
|
||
"title": "Geräte-Limit erreicht",
|
||
"subtitle": "{{max}} von {{max}} Geräten belegt ({{plan}}) — entferne ein Gerät um weiterzumachen",
|
||
"hint": "Entfernte Geräte können sich beim nächsten Login wieder registrieren.",
|
||
"remove_cta": "Gerät entfernen"
|
||
},
|
||
"urge": {
|
||
"title": "SOS — Atemübung",
|
||
"step_dashboard": "Start",
|
||
"step_emotion": "Emotion",
|
||
"step_breathing": "Atmung",
|
||
"step_games": "Lyra Games",
|
||
"step_result": "Reflexion",
|
||
"step_done": "Fertig",
|
||
"feel_urge": "Spürst du gerade einen starken Impuls?",
|
||
"feel_urge_desc": "Wir führen dich in kleinen Schritten durch einen sicheren Reset.",
|
||
"yes_urge": "Ja, ich brauche Hilfe",
|
||
"just_play": "Nur kurz spielen",
|
||
"this_week": "Diese Woche",
|
||
"total_urges": "Impulse",
|
||
"overcome_count": "Überwunden",
|
||
"breathing_exercises": "Atemübungen",
|
||
"having_urge": "Du bist nicht allein.",
|
||
"how_feeling": "Wie fühlst du dich gerade?",
|
||
"emotion_stress": "Stress",
|
||
"emotion_sadness": "Trauer",
|
||
"emotion_anger": "Wut",
|
||
"emotion_empty": "Leere",
|
||
"emotion_boredom": "Langeweile",
|
||
"emotion_other": "Anderes",
|
||
"lets_breathe": "Lass uns kurz atmen",
|
||
"breathing_desc": "Nur 3 Runden. Danach ist dein Kopf meist deutlich ruhiger.",
|
||
"round": "Runde %{current} / %{total}",
|
||
"round_simple": "Runde %{current} / %{total}",
|
||
"intro": "Tief durchatmen hilft, den Impuls zu überwältigen.",
|
||
"inhale": "Einatmen",
|
||
"hold": "Halten",
|
||
"exhale": "Ausatmen",
|
||
"start": "Übung starten",
|
||
"start_exercise": "Atemübung starten",
|
||
"skip": "Überspringen",
|
||
"game_offer_title": "Lyra Games",
|
||
"game_offer_text": "Wähle ein kurzes Spiel. 2-3 Minuten reichen oft, um den Impuls zu brechen.",
|
||
"just_play_lyra": "Kleiner Fokus-Reset gefällig? Such dir ein Spiel aus.",
|
||
"game_memory": "Memory",
|
||
"game_tictactoe": "Tic-Tac-Toe",
|
||
"game_snake": "Snake",
|
||
"game_tetris": "Tetris",
|
||
"game_memory_desc": "Paare finden, Fokus zurückholen",
|
||
"game_tictactoe_desc": "Schnelles Duell für klare Entscheidungen",
|
||
"game_snake_desc": "Rhythmus statt Grübeln",
|
||
"game_tetris_desc": "Muster ordnen, Kopf beruhigen",
|
||
"skip_games": "Spiele überspringen",
|
||
"back": "Zurück",
|
||
"open_lyra": "Mit Lyra öffnen",
|
||
"game_start_title": "Spiel starten",
|
||
"game_start_desc": "%{game} wird mit Lyra gestartet.",
|
||
"how_overcome": "Wie ging es danach?",
|
||
"answer_helps": "Deine Antwort hilft dir, Muster zu erkennen und stärker zu werden.",
|
||
"i_overcame": "Ich habe den Impuls überwunden",
|
||
"i_gave_in": "Ich habe nachgegeben",
|
||
"overcame_msg": "Stark. Jeder überwundene Impuls trainiert dein Gehirn neu.",
|
||
"gave_in_msg": "Kein Urteil. Ehrlichkeit ist der Startpunkt für den nächsten Sieg.",
|
||
"save": "Speichern",
|
||
"done_title": "Sehr gut!",
|
||
"done_desc": "Du hast die Atemübung abgeschlossen. Dein Nervensystem hat sich beruhigt.",
|
||
"done_back": "Zurück",
|
||
"well_done": "Stark gemacht",
|
||
"chin_up": "Kopf hoch",
|
||
"overcame_result": "Du hast den Impuls durchbrochen. Bleib bei dem, was dir gut tut.",
|
||
"gave_in_result": "Ein Rückschritt ist kein Ende. Atme durch und starte neu.",
|
||
"back_to_dashboard": "Zurück zum Dashboard"
|
||
},
|
||
"notifications": {
|
||
"title": "Benachrichtigungen",
|
||
"empty_title": "Keine Benachrichtigungen",
|
||
"empty_subtitle": "Du bist auf dem neuesten Stand.",
|
||
"mark_all_read": "Alle als gelesen markieren",
|
||
"liked_post": "hat deinen Beitrag geliked",
|
||
"commented_post": "hat deinen Beitrag kommentiert",
|
||
"voted_domain": "hat über deine Domain abgestimmt",
|
||
"domain_accepted": "ist jetzt in der globalen Sperrliste",
|
||
"domain_accepted_sub": "Tippe um deine Sperrliste zu öffnen",
|
||
"domain_rejected": "wurde abgelehnt und aus deiner Liste entfernt",
|
||
"new_follower": "folgt dir jetzt",
|
||
"generic": "hat dich benachrichtigt",
|
||
"just_now": "gerade eben",
|
||
"min_ago": "vor %{n} Min",
|
||
"hours_ago": "vor %{n} Std",
|
||
"days_ago": "vor %{n} T"
|
||
},
|
||
"chat": {
|
||
"title": "Chat",
|
||
"dms": "Direktnachrichten",
|
||
"rooms": "Gruppen",
|
||
"groups": "Gruppen",
|
||
"direct": "Direkt",
|
||
"no_chats": "Noch keine Chats",
|
||
"no_rooms": "Noch keine Gruppen",
|
||
"start_dm": "Neuen DM starten",
|
||
"placeholder": "Nachricht schreiben…",
|
||
"you": "Du: ",
|
||
"just_now": "gerade",
|
||
"loading": "Laden…",
|
||
"send_failed": "Nachricht konnte nicht gesendet werden.",
|
||
"create_group": "Gruppe erstellen",
|
||
"create": "Erstellen",
|
||
"room_name": "Gruppenname",
|
||
"room_description": "Beschreibung (optional)",
|
||
"public_room": "Öffentliche Gruppe",
|
||
"join_mode": "Beitrittsmodus",
|
||
"join_mode_approval": "Mit Freigabe",
|
||
"join_mode_invite": "Nur Einladung",
|
||
"join": "Beitreten",
|
||
"join_pending": "Beitritt wird geprüft…",
|
||
"join_required": "Tritt der Gruppe bei, um mitzuschreiben.",
|
||
"members": "Mitglieder",
|
||
"settings": "Einstellungen",
|
||
"info": "Info",
|
||
"leave_room": "Gruppe verlassen",
|
||
"reply": "Antworten",
|
||
"reply_to": "Antwort an",
|
||
"like": "Liken",
|
||
"unlike": "Like entfernen",
|
||
"copy": "Kopieren",
|
||
"image_attachment": "Bild",
|
||
"file_attachment": "Datei",
|
||
"upload_failed": "Upload fehlgeschlagen",
|
||
"member_count": "%{n} Mitglieder",
|
||
"pending_request": "Beitrittsanfragen",
|
||
"approve": "Annehmen",
|
||
"reject": "Ablehnen",
|
||
"avatar_updated": "Gruppenbild aktualisiert",
|
||
"send": "Senden"
|
||
},
|
||
"community": {
|
||
"compose_placeholder": "Was bewegt dich gerade?",
|
||
"compose_default_user": "Du",
|
||
"compose_photo_perm_title": "Foto-Zugriff",
|
||
"compose_photo_perm_desc": "Bitte erlaube den Zugriff auf deine Fotos in den iOS-Einstellungen.",
|
||
"image": "Bild",
|
||
"cancel": "Abbrechen",
|
||
"share": "Teilen",
|
||
"no_posts": "Sei der Erste der was teilt",
|
||
"cat_all": "Alle",
|
||
"cat_games": "Games",
|
||
"cat_domain": "Domain-Votes",
|
||
"cat_lyra": "Lyra",
|
||
"cat_rebreak": "ReBreak",
|
||
"like": "Gefällt mir",
|
||
"comment": "Kommentar",
|
||
"comments_title": "Kommentare",
|
||
"comments_empty": "Noch keine Kommentare – sei der Erste!",
|
||
"reply": "Antworten",
|
||
"reply_to": "Antwort an",
|
||
"send": "Senden",
|
||
"comment_placeholder": "Kommentar schreiben…",
|
||
"filter": "Filter",
|
||
"published": "Veröffentlicht",
|
||
"post_failed": "Post konnte nicht veröffentlicht werden.",
|
||
"anonymous_label": "Anonym",
|
||
"tier_starter": "Starter",
|
||
"tier_pro": "Pro",
|
||
"tier_legend": "Legend",
|
||
"bot_admin": "Admin",
|
||
"bot_ai": "KI",
|
||
"reposted_suffix": "hat repostet",
|
||
"domain_proposal_label": "Sperrlisten-Vorschlag",
|
||
"domain_added_to_blocklist": "Zur globalen Sperrliste hinzugefügt",
|
||
"domain_added": "In der globalen Sperrliste",
|
||
"domain_proposed": "Zur Aufnahme vorgeschlagen",
|
||
"domain_vote_own": "Du kannst nicht über deinen eigenen Vorschlag abstimmen.",
|
||
"vote_yes": "Ja",
|
||
"vote_no": "Nein",
|
||
"vote_rejected": "Abgelehnt",
|
||
"vote_in_review": "In Prüfung",
|
||
"voted_thanks": "Danke für deine Stimme!"
|
||
},
|
||
"streak": {
|
||
"label_one": "Tag",
|
||
"label_other": "Tage",
|
||
"label_suffix": "clean"
|
||
},
|
||
"profile": {
|
||
"edit_title": "Profil bearbeiten",
|
||
"edit_save": "Speichern",
|
||
"edit_photo_cta": "Eigenes Foto wählen",
|
||
"edit_photo_perm_title": "Foto-Zugriff",
|
||
"edit_photo_perm_desc": "Bitte erlaube den Zugriff auf deine Fotos in den iOS-Einstellungen.",
|
||
"edit_preset_label": "Avatar wählen",
|
||
"edit_nickname_label": "Nickname",
|
||
"edit_nickname_hint": "Sichtbar für andere Mitglieder — max. 32 Zeichen."
|
||
},
|
||
"demographics": {
|
||
"employment_status_employed": "angestellt",
|
||
"employment_status_self_employed": "selbständig",
|
||
"employment_status_in_training": "in Ausbildung / Studium",
|
||
"employment_status_unemployed": "arbeitslos / arbeitssuchend",
|
||
"employment_status_retired": "pensioniert / im Ruhestand",
|
||
"employment_status_homemaking": "Hausarbeit / Care-Arbeit",
|
||
"employment_status_other": "andere",
|
||
"industry_it_software": "IT / Software",
|
||
"industry_healthcare": "Pflege / Medizin",
|
||
"industry_education": "Bildung / Lehre",
|
||
"industry_hospitality": "Gastronomie / Hotellerie",
|
||
"industry_construction": "Bau / Handwerk",
|
||
"industry_banking_finance": "Banking / Finance",
|
||
"industry_sales_marketing": "Verkauf / Marketing",
|
||
"industry_public_admin": "Verwaltung / Behörde",
|
||
"industry_logistics": "Logistik / Transport",
|
||
"industry_creative_media": "Kreativ / Medien",
|
||
"industry_other": "andere",
|
||
"tenure_less_1y": "weniger als 1 Jahr",
|
||
"tenure_1_3y": "1-3 Jahre",
|
||
"tenure_3_5y": "3-5 Jahre",
|
||
"tenure_5_10y": "5-10 Jahre",
|
||
"tenure_more_10y": "mehr als 10 Jahre",
|
||
"shift_work_yes": "Ja",
|
||
"shift_work_no": "Nein",
|
||
"shift_work_unknown": "k.A.",
|
||
"section_beruf": "BERUF",
|
||
"section_wohnort": "WOHNORT",
|
||
"field_status": "Status",
|
||
"field_shift_work": "Schichtarbeit",
|
||
"field_industry": "Branche",
|
||
"field_job_tenure": "Im Job seit",
|
||
"field_bundesland": "Bundesland",
|
||
"field_city": "Stadt",
|
||
"picker_employment_status": "Berufs-Status",
|
||
"picker_industry": "Branche",
|
||
"picker_job_tenure": "Im aktuellen Job seit",
|
||
"picker_bundesland": "Bundesland"
|
||
},
|
||
"gameOver": {
|
||
"title": "Spiel beendet",
|
||
"score": "Score",
|
||
"best": "Rekord",
|
||
"newBest": "Neuer Rekord",
|
||
"retry": "Nochmal",
|
||
"exit": "Beenden",
|
||
"motivational_0": "Du hast dir eine kurze Auszeit gegönnt. Das zählt.",
|
||
"motivational_1": "Jede Minute Fokus ist eine Minute für dich.",
|
||
"motivational_2": "Konzentration trainieren — genau das bist du gerade.",
|
||
"motivational_3": "Gut gespielt. Und gut, dass du hier bist.",
|
||
"motivational_4": "Kleine Pausen, große Wirkung."
|
||
}
|
||
}
|