chahinebrini 8a6ab6fe64 feat(native/blocker): unified slot bar + single + button + auto-detect sheet
Single shared affordance for adding either a website-domain or a mail-
sender-domain. The per-section add buttons (one inside "Eigene Domains"
and one inside "Eigene Mails") are gone — replaced by a CustomFilter-
Overview card above both sections with:

- title "Eigene Filter" and a "X von 20" counter (free/pro: 10, legend:
  20 — sum of the two per-type buckets)
- a 2-colour progress pill: brandOrange for the web slice, success-green
  for the mail slice on top of the surface-elevated rest
- a 48×48 rounded-full TouchableOpacity on the right (brandOrange,
  ionicons add 24px, white) that opens the AddDomainSheet directly

AddDomainSheet was rewritten one more time: the Seite / E-Mail type
picker is gone. The user types one thing — domain or full address —
and a live preview shows which one we detected (Domain-Filter for a
bare host, Mail-Filter for input that contains "@", stripping to the
domain after the last @). The shape is also what we send: the body is
{ pattern } with no kind field. The backend (commit a2680f6) does the
authoritative auto-detect and sends back the resolved type with the
created row, so the frontend never has to guess in two places.

useCustomDomains.addDomain now treats kind as optional. When omitted,
the request body just carries pattern — when present it's still sent
through verbatim so any caller that wants to force a category still can.

DomainSection no longer renders a per-section add button when its onAdd
prop is undefined — domains and mails sections in blocker.tsx both
omit onAdd now. The mails section stays default-collapsed.

i18n: new keys custom_filter_overview_title / count + preview_web /
preview_mail / preview_invalid; tabs_web / tabs_mail removed since the
TypePicker is gone. type_web / type_mail kept in the locales as
inactive entries in case the type-picker comes back in a future
direct-add flow.
2026-05-16 02:54:38 +02:00

1097 lines
59 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"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",
"device_locked_headline": "Dieses Gerät ist gesperrt",
"device_locked_body": "Du hast versucht, dich mit diesem Gerät anzumelden. Es ist aber an einen anderen Rebreak-Account gebunden. Diese Sperre schützt dich davor, im Drang-Moment dein eigenes Schutz-Setup zu umgehen.",
"device_locked_countdown": "Freigabe läuft — noch %{remaining}",
"device_locked_email_hint": "Wenn du dein Original-Konto nicht mehr kennst: Schau in deinem E-Mail-Postfach nach 'Rebreak Gerät gesperrt' — wir haben dir eine Mail geschickt.",
"device_locked_use_original": "Mit Original-Account anmelden",
"device_locked_back": "Zurück zur Anmeldung"
},
"landing": {
"appName": "Rebreak",
"tagline": "Du gehst nicht allein.",
"start": "Registrieren"
},
"splash": {
"tagline": "You will never walk alone!",
"subtitle": "Zusammen schaffen wir das.",
"madeInGermany": "Made in Germany"
},
"applock": {
"title": "Rebreak ist gesperrt",
"subtitle": "Entsperre die App, um fortzufahren.",
"unlock": "Entsperren",
"prompt": "Rebreak entsperren",
"signOut_title": "Abmelden?",
"signOut_body": "Danach kannst du dich wieder mit E-Mail und Passwort anmelden."
},
"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": "Filter hinzufügen",
"add_sheet_label": "Domain oder E-Mail-Adresse",
"add_sheet_placeholder": "z.B. casino.com oder info@casino.com",
"add_sheet_invalid": "Bitte gültige Domain oder E-Mail-Adresse eingeben",
"add_sheet_help": "Wir erkennen automatisch ob es eine Webseite oder ein Mail-Absender ist.",
"preview_web": "Domain-Filter: %{value}",
"preview_mail": "Mail-Filter: %{value}",
"preview_invalid": "Ungültiges Format",
"custom_filter_overview_title": "Eigene Filter",
"custom_filter_overview_count": "%{count} von %{max}",
"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",
"protection_off_title": "Schutz ist aus",
"protection_off_message": "Der Filter läuft gerade nicht, sollte aber an sein. Willst du ihn wieder einschalten?",
"reactivate_btn": "Wieder einschalten",
"activate_app_lock_failed_title": "App-Lock konnte nicht aktiviert werden",
"activate_app_lock_failed_msg": "Die nötige 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": "Verriegelt — Abschalten nur über die Abkühlphase",
"layers_app_lock_subtitle_inactive": "Verhindert, dass du ReBreak oder den Filter im Impuls abschaltest",
"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": "Schutz deaktivieren",
"cooldown_elapsed_title": "Schutz ist aus",
"cooldown_elapsed_message": "Der Cooldown ist abgelaufen — der Schutz wurde deaktiviert. Du kannst den ReBreak-Bedienungshilfe-Dienst jetzt in den Einstellungen ausschalten.",
"cooldown_elapsed_open_settings": "Einstellungen öffnen",
"app_lock_coming_soon_badge": "Bald",
"app_lock_coming_soon_desc": "App-Sperre wird bald verfügbar — Schutz ist bereits aktiv.",
"type_web": "Seite",
"type_mail": "E-Mail",
"add_web_label": "Domain",
"add_web_placeholder": "z.B. casino.com",
"add_web_help": "Diese Webseite wird auf allen geschützten Geräten blockiert.",
"add_mail_label": "E-Mail-Adresse oder Domain",
"add_mail_placeholder": "z.B. newsletter@casino.com oder casino.com",
"add_mail_help": "E-Mail-Adresse oder Mail-Domain. Wir blockieren alle Mails von diesem Absender.",
"add_mail_invalid": "Bitte ein Muster eingeben.",
"add_sheet_cta": "Hinzufügen",
"section_domains": "Eigene Domains",
"section_mails": "Eigene Mails",
"count_label": "%{count}/%{max}",
"error_web_limit_reached": "Du hast alle Domain-Slots aufgebraucht. Entferne eine Domain oder upgrade auf Pro/Legend.",
"error_mail_limit_reached": "Du hast alle Mail-Slots aufgebraucht. Entferne ein Mail-Pattern oder upgrade auf Pro/Legend.",
"empty_web": "Noch keine eigenen Domains.\nTippe + um eine hinzuzufügen.",
"empty_mail": "Noch keine Mail-Domains. Tippe + um eine E-Mail-Adresse oder Domain zu blockieren."
},
"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": "Weitere Anbieter",
"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_outlook_disabled_badge": "Kommt bald",
"provider_outlook_disabled_hint": "Microsoft-Konten brauchen eine neue Anmeldemethode, wir arbeiten daran.",
"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 deine E-Mail-Adresse und dein App-Passwort ein. Rebreak erkennt deinen Anbieter automatisch anhand der Domain (z.B. IONOS, Strato, 1&1). App-Passwort empfohlen falls 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.",
"chart_title": "Letzte 7 Tage",
"chart_week_total": "%{count} diese Woche",
"status_auth_error": "Auth-Fehler",
"status_connect_error": "Verbindungsfehler",
"status_error_tap_hint": "Tippen zum Beheben",
"status_stale": "Stale",
"status_stale_last_scan": "letzter scan %{rel}",
"status_live_idle": "IDLE aktiv seit %{rel}",
"status_live_no_new_mail": "verbunden · keine neue mail seit %{rel}",
"status_waiting_first_connect": "Wartet auf erste Verbindung",
"auth_error_title": "App-Password ungültig",
"auth_error_subtitle": "Das App-Password für %{email} ist abgelaufen oder falsch. Bitte erneuer es und trag es hier ein.",
"auth_error_renew_link": "Neues App-Password erstellen",
"errors": {
"auth_failed": "Das App-Passwort ist nicht korrekt. Bitte erneuere es bei deinem Mail-Anbieter und trage es hier ein.",
"app_password_required": "Dein Mail-Anbieter verlangt ein App-spezifisches Passwort. Erstelle eines in den Account-Einstellungen.",
"connection_failed": "Verbindung zum Mail-Server fehlgeschlagen. Bitte später erneut versuchen.",
"host_unreachable": "Mail-Server nicht erreichbar. Internet-Verbindung prüfen — oder dein Anbieter wird noch nicht unterstützt. Schreib uns: support@rebreak.org",
"tls_error": "Sichere Verbindung zum Mail-Server konnte nicht hergestellt werden. Provider kontaktieren.",
"rate_limited": "Zu viele Verbindungsversuche. Bitte ein paar Minuten warten und erneut versuchen.",
"unknown": "Verbindung fehlgeschlagen. Prüfe das App-Passwort oder schreib uns an support@rebreak.org — wir fügen deinen Anbieter gerne hinzu."
},
"consent": {
"title": "Bevor du dein Postfach anbindest",
"intro": "Rebreak sucht in deinem Postfach gezielt nach Glücksspiel-Werbemails und löscht sie automatisch. Aus dieser Verarbeitung können Rückschlüsse auf eine Suchterkrankung gezogen werden — wir behandeln das als besondere Datenkategorie nach Art. 9 DSGVO.",
"legal_text": "Mit der Verbindung meines E-Mail-Postfachs willige ich ausdrücklich ein, dass Rebreak in meinem Postfach gezielt nach Glücksspiel-Werbemails sucht und diese löscht. Mir ist bewusst, dass aus dieser Verarbeitung Rückschlüsse auf eine Suchterkrankung möglich sind, und ich willige in diese Verarbeitung von Gesundheitsdaten gem. Art. 9 Abs. 2 lit. a DSGVO ausdrücklich ein. Diese Einwilligung kann ich jederzeit für die Zukunft widerrufen, indem ich die Mail-Verbindung in den Einstellungen trenne.",
"checkbox_label": "Ich willige ausdrücklich ein",
"cta_next": "Weiter",
"more_link": "Mehr zur Verarbeitung",
"reminder_title": "Wichtige Datenschutz-Information",
"reminder_body_one": "Für deine bestehende Postfach-Verbindung brauchen wir deine ausdrückliche erneute Einwilligung — sonst pausieren wir das Auto-Löschen.",
"reminder_body_other": "Für deine %{count} bestehenden Postfach-Verbindungen brauchen wir deine ausdrückliche erneute Einwilligung — sonst pausieren wir das Auto-Löschen.",
"reminder_legal_short": "Ich willige in die Verarbeitung meiner Postfach-Inhalte nach Art. 9 Abs. 2 lit. a DSGVO ein.",
"reminder_cta_consent": "Einwilligen",
"reminder_cta_later": "Später",
"reminder_cta_disconnect": "Verbindungen jetzt trennen",
"reminder_consent_error": "Einwilligung konnte nicht gespeichert werden. Bitte erneut versuchen."
},
"title_label": "Bezeichnung",
"title_placeholder": "z.B. Privat-Gmail, Arbeit",
"title_edit_title": "Bezeichnung bearbeiten",
"title_save": "Speichern",
"settings_section_label": "Einstellungen",
"row_title": "Bezeichnung",
"row_email": "E-Mail",
"row_password": "Passwort",
"row_disconnect": "Verbindung trennen",
"account_chart_unavailable": "Tages-Verlauf wird geladen …",
"disconnect_confirm_title": "Verbindung trennen?",
"disconnect_confirm_body": "%{email} wird getrennt und alle Scan-Daten gelöscht.",
"more_infos_title": "Mehr Infos",
"more_infos_subtitle": "Blockiert — letzte 30 Tage",
"stats": {
"blocked_per_day_heading": "Blockiert",
"blocked_per_day_sublabel": "%{total} Mails blockiert · %{avg} letzte Woche",
"blocked_per_week_heading": "Blockiert — letzte Wochen",
"blocked_per_month_heading": "Blockiert — letzte Monate",
"distribution_heading": "Verteilung nach Postfach",
"distribution_center_label": "insgesamt",
"distribution_other": "Sonstige",
"distribution_other_n": "+%{n} weitere",
"empty_title": "Noch keine Mails blockiert",
"empty_body": "Sobald Mails blockiert werden, erscheint hier ein Überblick."
},
"filter": {
"all": "Alle"
},
"oauth": {
"warning_title": "Hinweis zur Sichtbarkeit in deinem Microsoft-Konto",
"warning_body": "Microsoft zeigt dir gleich einen Berechtigungsdialog. Der App-Name \"Rebreak\" erscheint dort und wird in deiner Microsoft-Konto-Übersicht unter App-Berechtigungen sichtbar. Falls dein Microsoft-Konto von anderen Personen mitgenutzt wird, solltest du das berücksichtigen.",
"warning_continue": "Verstanden, mit Microsoft anmelden",
"warning_cancel": "Zurück zur Auswahl",
"pending_label": "Microsoft-Anmeldung läuft …",
"pending_hint": "Schließe den Schritt in deinem Browser ab und kehre dann zurück.",
"error_aborted": "Anmeldung abgebrochen.",
"error_no_code": "OAuth fehlgeschlagen — kein Autorisierungscode zurück.",
"error_callback_failed": "Verbindung konnte nicht abgeschlossen werden. Bitte versuche es erneut.",
"disconnect_hint_title": "Verbindung getrennt",
"disconnect_hint_body": "Die Tokens wurden aus unserer Datenbank gelöscht. Microsoft unterstützt leider keinen serverseitigen Widerruf durch Drittanbieter-Apps. Für eine vollständige Entfernung der Rebreak-Berechtigung in deinem Microsoft-Konto: account.microsoft.com → Sicherheit → Berechtigungen für Apps → Rebreak suchen → Entfernen.",
"disconnect_hint_open_ms": "Microsoft öffnen"
},
"account_chart_collecting_title": "Daten werden gesammelt",
"account_chart_collecting_body": "Auswertung verfügbar nach 24h",
"scan_now": "Jetzt scannen",
"scan_running": "Scannt…",
"scan_done": "%{count} blockiert",
"scan_error": "Scan fehlgeschlagen",
"email_change_not_supported": "E-Mail-Änderung kommt bald"
},
"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",
"subscription_plan_free": "Free",
"subscription_plan_pro": "Pro",
"subscription_plan_legend": "Legend",
"subscription_sheet_title": "Dein Abonnement",
"subscription_sheet_body": "Du verwaltest dein Abo auf rebreak.org — dort kannst du upgraden, downgraden oder kündigen.",
"subscription_sheet_cta": "Zu rebreak.org/account",
"plan_free": "Free",
"push_notifications": "Push-Benachrichtigungen",
"streak_reminders": "Streak-Erinnerungen",
"language": "Sprache",
"language_desc": "Deutsch / Englisch / Französisch",
"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",
"language_fr": "Français",
"lyra_voice_default": "Standard",
"lyra_voice_1": "Stimme 1",
"lyra_voice_2": "Stimme 2",
"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)",
"debug_plan": "Plan überschreiben (DEV)",
"debug_plan_desc": "POST /api/dev/set-plan — nur staging",
"debug_realtime": "Realtime-Verbindung (DEV)",
"debug_realtime_desc": "Connection-State, Channels, Event-Log",
"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",
"section_security": "Sicherheit",
"app_lock": "App-Sperre",
"app_lock_desc": "Beim Öffnen mit Face ID, Touch ID oder Code entsperren",
"app_lock_unavailable": "Auf diesem Gerät nicht verfügbar",
"app_lock_desc_android": "Beim Öffnen mit Fingerabdruck, Gesichtsentsperrung oder PIN entsperren",
"notifications_push_sublabel": "Erinnerungen, Lyra-Nachrichten, Streak-Updates",
"notifications_streak_time": "Erinnerungszeit",
"notifications_streak_time_desc": "Wann soll die tägliche Erinnerung erscheinen?",
"notifications_streak_time_picker_title": "Erinnerungszeit wählen",
"notifications_streak_time_picker_desc": "Stunde und Minute für die tägliche Streak-Erinnerung.",
"notifications_hour": "Stunde",
"notifications_minute": "Minute",
"section_help": "Hilfe & Support",
"help_faq": "FAQ",
"help_faq_desc": "Häufige Fragen zur App",
"help_contact": "Kontakt",
"help_contact_desc": "Schreib uns — wir antworten innerhalb 2448h",
"help_about": "Über Rebreak",
"help_about_desc": "Mission, Datenschutz, DiGA-Pfad",
"help_crisis": "Krisen-Hilfe",
"help_crisis_desc": "Externe Beratungsstellen & Notfall-Nummern"
},
"device_limit": {
"title": "Geräte-Limit erreicht",
"subtitle": "%{count} 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",
"this_device": "Dieses Gerät"
},
"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",
"search_placeholder": "Konversationen durchsuchen…"
},
"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.",
"crop_title": "Ausschnitt wählen",
"crop_confirm": "Übernehmen",
"crop_hint": "Bewege und zoome das Bild um den gewünschten Ausschnitt zu wählen.",
"crop_reset": "Zurücksetzen",
"streak_section_label": "STREAK",
"streak_days_protected": "Tage geschützt",
"streak_since": "seit %{date}",
"streak_longest": "Längste Streak: %{days} Tage",
"cooldown": {
"heading": "COOLDOWN-VERLAUF",
"window_label": "letzte %{weeks}W",
"week_label": "W%{n}",
"none": "Keine Cooldowns in den letzten 8 Wochen",
"count_one": "1 Cooldown in %{weeks} Wochen",
"count_other": "%{n} Cooldowns in %{weeks} Wochen",
"avg_last": "Ø 1 pro %{avg} Wochen · zuletzt %{date}",
"patterns": {
"toggle_label": "Mehr Infos",
"hour_heading": "Wann startest du Cooldowns?",
"day_heading": "An welchen Tagen?",
"reason_heading": "Häufige Begriffe",
"cancel_rate": "Cooldowns abgebrochen: %{pct}%",
"not_enough": "Noch keine Muster erkannt",
"weekday_mon": "Mo",
"weekday_tue": "Di",
"weekday_wed": "Mi",
"weekday_thu": "Do",
"weekday_fri": "Fr",
"weekday_sat": "Sa",
"weekday_sun": "So",
"hour_morning": "Morgens",
"hour_afternoon": "Mittag",
"hour_evening": "Abend",
"hour_night": "Nacht"
}
}
},
"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"
},
"devices": {
"section_title_this": "Dieses Gerät",
"section_title_others": "Weitere geschützte Geräte",
"subtitle_legend": "Schutz auf bis zu 3 Geräten — egal welches du benutzt.",
"subtitle_free": "Aktuelles Gerät geschützt.",
"add_mac": "Mac hinzufügen",
"add_windows": "Windows hinzufügen (bald)",
"upgrade_cta": "Auf Legend upgraden",
"status_pending": "Bereit zum Installieren",
"status_active": "Aktiv",
"status_revoked": "Entfernt",
"label_placeholder": "z.B. MacBook Pro",
"label_default": "MacBook Pro",
"label_question": "Wie soll der Mac heißen?",
"prepare_profile": "Profile vorbereiten",
"lyra_intro": "Drei Schritte. Ich begleite dich durch jeden — wenn was schiefgeht, klick auf Hilfe.",
"step_1_title": "Profile downloaden",
"step_1_body": "Klick den Button unten. Wenn du am Mac bist, öffnet das die Profile-Datei direkt. Bist du am Phone? Dann kommt ein QR-Code — den du am Mac einscannst um die Datei zu kriegen.",
"step_2_title": "Profile installieren",
"step_2_body": "Auf dem Mac: Doppelklick auf die heruntergeladene Datei → Systemeinstellungen öffnet sich → \"Profil installieren\" → Mac-Passwort eingeben → fertig.",
"step_3_title": "Standard-Account nutzen",
"step_3_body": "Wichtig: arbeite auf dem Mac mit einem Standard-Account, nicht Admin. Wenn du ein Notfall-Bedürfnis hast, das Profile zu entfernen, brauchst du das Admin-Passwort — das idealerweise jemand anderes hat (Partnerin, Freund, jemand dem du vertraust). Das ist die eigentliche Schutzschicht.",
"step_4_title": "Fertig",
"step_4_body": "Sobald du auf dem Mac im Browser oder in einer App eine Webseite öffnest, erkennen wir das automatisch und aktivieren den Schutz.",
"download_button": "Profile auf Mac downloaden",
"confirm_installed": "Ich hab's installiert ✓",
"waiting_install": "Warte auf Profile-Installation auf deinem Mac…",
"waiting_hint": "Sobald du im Browser oder einer App eine Webseite öffnest, aktivieren wir automatisch dein Gerät.",
"activated_toast": "Mac verbunden!",
"need_help": "Brauche Hilfe",
"success_title": "Mac geschützt!",
"success_body": "Du kannst weitere Geräte hinzufügen wenn du willst.",
"remove_warning_title": "Profile manuell entfernen",
"remove_warning_body": "Wir können das Profile nicht aus der Ferne löschen. Auf dem Mac: Systemeinstellungen → Profile → ReBreak → Entfernen (Admin-Passwort nötig).",
"add_device": "Neues Gerät hinzufügen",
"progress_label": "%{count} von %{max} Geräten",
"progress_at_limit": "Maximum erreicht",
"add_windows_enabled": "Windows-PC hinzufügen",
"windows_label_question": "Wie soll der Windows-PC heißen?",
"windows_label_default": "Windows-PC",
"windows_label_placeholder": "z.B. Gaming-PC",
"windows_lyra_intro": "Fünf kurze Schritte. Ich begleite dich — wenn was nicht klappt, klick auf Hilfe.",
"windows_step_1_title": "Datei herunterladen",
"windows_step_1_body": "Klick den Button unten — auf deinem Windows-PC. Die .reg-Datei wird gedownloadet.",
"windows_step_2_title": ".reg ausführen",
"windows_step_2_body": "Doppelklick auf die heruntergeladene .reg-Datei. Windows fragt: 'Möchten Sie der Registrierung Schlüssel hinzufügen?' → Klick 'Ja'.",
"windows_step_3_title": "UAC bestätigen",
"windows_step_3_body": "Wenn ein blauer UAC-Prompt erscheint: 'Ja' klicken. Das ist die Admin-Bestätigung.",
"windows_step_4_title": "DNS aktivieren",
"windows_step_4_body": "Öffne Windows-Einstellungen → Netzwerk & Internet → klick auf dein WLAN → DNS-Server-Zuweisung → 'Bearbeiten' → wähle 'Verschlüsselt nur (DNS over HTTPS)' → wähle 'rebreak-...' aus der Liste.",
"windows_step_5_title": "Fertig",
"windows_step_5_body": "Sobald du die DNS-Auswahl gespeichert hast, klick 'Ich hab's installiert' und ich zähl deinen PC als geschütztes Gerät.",
"windows_download_button": "Datei auf Windows-PC herunterladen",
"windows_success_title": "Windows-PC geschützt!",
"windows_success_body": "Du kannst weitere Geräte hinzufügen wenn du willst.",
"windows_remove_warning_body": "Wir können die Registrierung nicht aus der Ferne löschen. Auf dem PC: Regedit → HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\DoHSvc → Schlüssel entfernen.",
"bound_badge": "Gebunden",
"release_request_title": "Gerät freigeben?",
"release_request_body": "Das Gerät wird nach 24 Stunden freigegeben. Du kannst die Freigabe vorher jederzeit widerrufen.",
"release_request_confirm": "Freigabe starten",
"release_countdown": "Freigabe in %{remaining}",
"release_cancel": "Freigabe abbrechen",
"release_cancel_confirm": "Freigabe wirklich abbrechen?",
"release_cancel_body": "Das Gerät bleibt weiterhin an deinen Account gebunden.",
"release_cancel_cta": "Ja, abbrechen"
},
"plan": {
"change": {
"header_upgrade": "Du wechselst auf {{to}}.",
"header_downgrade": "Du wechselst von {{from}} auf {{to}}.",
"section_gains": "Was du dazubekommst",
"section_keeps": "Was gleich bleibt",
"section_changes": "Was sich ändert",
"downgrade_reassurance": "Dein Grundschutz läuft weiter.",
"downgrade_no_delete_title": "Es wird nichts gelöscht.",
"downgrade_no_delete_body": "Alles Pausierte kommt sofort zurück, wenn du wieder upgradest.",
"downgrade_recovery_note": "Wenn dieser Wechsel deinen Schutz in einem Moment schwächt, in dem du dir unsicher bist — schreib Lyra. Oder schreib uns. Wir finden eine Lösung.",
"billing_hint": "Verwalte dein Abo auf rebreak.org.",
"grace_days_one": "läuft in {{count}} Tag aus",
"grace_days_other": "läuft in {{count}} Tagen aus",
"cta_confirm_upgrade": "Los geht's",
"cta_confirm_downgrade": "Verstanden, weiter",
"cta_stay": "Doch bei {{plan}} bleiben",
"action_keep": "bleibt",
"action_limited": "wird limitiert",
"action_paused": "wird pausiert",
"action_grace": "Grace-Period",
"action_degraded": "Schutz läuft aus",
"action_unlocked": "freigeschaltet"
}
},
"plan_limit": {
"mail_banner_title": "Postfächer über Plan-Limit",
"mail_banner_body_one": "Du hast {{used}} Postfach, {{plan}} schützt {{max}} — {{over}} ist pausiert.",
"mail_banner_body_other": "Du hast {{used}} Postfächer, {{plan}} schützt {{max}} — {{over}} sind pausiert.",
"mail_account_paused": "Pausiert (Plan-Downgrade)",
"mail_add_disabled_hint": "Erst ein Postfach pausieren oder upgraden.",
"blocker_domain_over_limit": "Du hast {{used}} eigene Domains, {{plan}} erlaubt {{max}} — alle bleiben aktiv, du kannst keine neue hinzufügen bis du unter {{max}} bist.",
"blocker_add_disabled_hint": "Erst eine Domain entfernen oder upgraden.",
"blocker_basic_protection": "Grundschutz aktiv — voller Schutz vor allen bekannten Glücksspiel-Seiten: Pro/Legend.",
"device_degraded_title": "Schutz ausgelaufen",
"device_degraded_body": "Das Profil ist noch auf dem Gerät installiert. Entferne es manuell oder hol dir Legend zurück.",
"device_add_limit_hint": "Du hast alle {{max}} Geräteslots belegt. Entferne ein Gerät oder upgraden.",
"device_add_limit_short": "Limit erreicht"
},
"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.",
"lyra_title_record": "Neuer Rekord!",
"lyra_body_record": "Du hast dich selbst übertroffen. Stark.",
"lyra_title_good": "Klasse!",
"lyra_body_good": "Du bist voll im Flow — der Impuls hatte keine Chance.",
"lyra_title_ok": "Weiter so",
"lyra_body_ok": "Jede Runde bringt dich weiter. Bleib dabei.",
"lyra_title_low": "Nächstes Mal",
"lyra_body_low": "Aufzutauchen zählt schon. Du schaffst das.",
"rating_saved": "Bewertung gespeichert",
"save_rating": "Bewertung speichern",
"feedback_placeholder": "Was hat dir gefallen oder gefehlt?",
"share_result": "In Community teilen",
"share_to_community": "Ergebnis teilen",
"share_challenge": "Kannst du das schlagen?",
"share_loading": "Lyra formuliert...",
"post_to_community": "Posten",
"posted": "Im Community-Feed gepostet",
"post_error": "Posten fehlgeschlagen, nochmal versuchen",
"regen_suggestion": "Neuer Vorschlag",
"regen_confirm_title": "Text verwerfen?",
"regen_confirm_body": "Deinen aktuellen Text verwerfen und neuen Vorschlag holen?",
"regen_confirm_ok": "Verwerfen"
},
"alert": {
"error_generic": "Etwas ist schiefgelaufen — versuch es nochmal.",
"error_file_too_large": "Das Bild ist zu groß.",
"details_label": "Details",
"compress_error_title": "Bild konnte nicht verarbeitet werden"
},
"help": {
"faq_title": "FAQ",
"faq_q1": "Was ist Rebreak?",
"faq_a1": "Rebreak ist eine deutsche App, die Menschen mit problematischem Glücksspielverhalten dabei unterstützt, clean zu bleiben. Sie kombiniert einen technischen Sperr-Mechanismus (Blocker) mit einem KI-Coach (Lyra), Community-Support und einem Mail-Schutz — alles DSGVO-konform auf deutschen Servern.",
"faq_q2": "Wie funktioniert der Blocker?",
"faq_a2": "Auf iOS läuft der Blocker als Netzwerk-Inhaltsfilter direkt auf deinem Gerät — kein Traffic verlässt dein iPhone. Über 208.000 Glücksspiel-Domains werden lokal blockiert. Auf deaktiviert setzen erfordert einen 24-Stunden-Cooldown, damit du Impulsen widerstehen kannst.",
"faq_q3": "Wie funktioniert das Mac-DNS-Profil?",
"faq_a3": "Du lädst ein Konfigurationsprofil herunter, das auf deinem Mac einen DNS-over-HTTPS-Filter aktiviert. Glücksspiel-Domains werden dadurch systemweit auf dem Mac geblockt — in Safari, Chrome, Firefox und allen anderen Apps. Das Profil entfernen erfordert das Admin-Passwort.",
"faq_q4": "Kann ich mein Abo kündigen?",
"faq_a4": "Ja. Du verwaltest dein Abo unter rebreak.org/account — dort kannst du kündigen, downgraden oder upgraden. Das Abo läuft bis zum Ende des bezahlten Zeitraums weiter.",
"faq_q5": "Was passiert mit meinen Daten?",
"faq_a5": "Deine Daten werden ausschließlich auf Servern in Deutschland (Hetzner) gespeichert. Wir verkaufen keine Daten an Dritte. Chat-Verläufe mit Lyra bleiben privat. Die vollständige Datenschutzerklärung findest du auf rebreak.org/datenschutz.",
"faq_q6": "Wie melde ich Bugs oder Feedback?",
"faq_a6": "Schreib uns direkt an hilfe@rebreak.org. Wir antworten innerhalb von 2448h an Werktagen. Für dringende technische Probleme bitte den Betreff 'Bug: ...' verwenden.",
"faq_q7": "Was passiert wenn ich aus Versehen eine Glücksspiel-Domain in der Whitelist habe?",
"faq_a7": "Eigene Domains auf deiner Blockliste sind dauerhaft. Wenn du eine Domain versehentlich hinzugefügt hast, schreib uns — wir können das manuell korrigieren. Im Pro-Plan kannst du Domains zur Community-Abstimmung freigeben und damit den Slot zurückgewinnen.",
"faq_q8": "Was ist DiGA?",
"faq_a8": "DiGA steht für Digitale Gesundheitsanwendung — eine Zertifizierung des Bundesinstituts für Arzneimittel und Medizinprodukte (BfArM). DiGA-zertifizierte Apps können von Ärzten verschrieben und von Krankenkassen erstattet werden. Rebreak befindet sich auf dem DiGA-Zertifizierungspfad.",
"contact_title": "Kontakt",
"contact_email_label": "Support per E-Mail",
"contact_email_desc": "Schreib uns für technische Hilfe, Feedback oder Datenschutz-Anfragen. Wir antworten innerhalb von 2448h an Werktagen.",
"contact_email_cta": "E-Mail schreiben",
"contact_address_label": "Anschrift",
"contact_address_block": "Rebreak\nhilfe@rebreak.org\n\nDeutschland",
"about_title": "Über Rebreak",
"about_headline": "Rebreak",
"about_body": "Rebreak ist eine deutsche App gegen Spielsucht — wir bauen den ersten DiGA-zertifizierten Begleiter für problematisches Glücksspiel.\n\nUnser Ansatz verbindet technischen Schutz (Blocker, Mail-Filter, DNS-Profile) mit einem KI-Coach auf Basis kognitivverhaltenstherapeutischer Methoden. Alles läuft auf deutschen Servern bei Hetzner, DSGVO-konform.\n\nRebreak ist kein Ersatz für professionelle Therapie. Wir verstehen uns als Ergänzung — ein 24/7-Werkzeug für Momente, in denen du allein mit dem Drang bist.",
"about_fact_diga": "DiGA-Zertifizierungspfad aktiv",
"about_fact_servers": "Server ausschließlich in Deutschland (Hetzner)",
"about_fact_privacy": "DSGVO-konform — keine Datenweitergabe an Dritte",
"crisis_title": "Krisen-Hilfe",
"crisis_section_gambling": "Spielsucht-Beratung",
"crisis_section_general": "Allgemeine Krisen-Hilfe",
"crisis_bzga_label": "BZgA Spielsucht-Hotline",
"crisis_bzga_sublabel": "0800 1 372 700 · kostenlos · 24/7",
"crisis_checkdein_label": "check-dein-spiel.de",
"crisis_checkdein_sublabel": "Online-Beratung & Selbsttest",
"crisis_anonyme_label": "Anonyme Spieler",
"crisis_anonyme_sublabel": "www.anonyme-spieler.org · Selbsthilfegruppen",
"crisis_seelsorge_label": "Telefonseelsorge",
"crisis_seelsorge_sublabel": "0800 111 0 111 · kostenlos · 24/7",
"crisis_emergency_label": "Akute Suizidgedanken?",
"crisis_emergency_desc": "Wenn du oder jemand in deiner Nähe in akuter Gefahr ist, ruf sofort den Notruf an.",
"crisis_emergency_cta": "112 — Notruf",
"crisis_disclaimer": "Diese Stellen sind unabhängig von Rebreak. Wir verweisen weiter, beraten aber nicht selbst."
}
}