fix(native): per-device bypass gate + 300k copy + locale/marketing polish
- protection.ts: gate recoveringFromBypass on a local 'everActiveHere' flag, set after a successful activateUrlFilter(). The 'protection off' sheet + tamper push no longer fire on fresh devices/sims where protection was never activated locally. Root cause: backend protectionShouldBeActive is the account DEFAULT (only false after a held cooldown), not an 'ever active' signal. - locales: blocklist size 208k -> 300k (native de/en/fr/ar + marketing de/en). - bundles already-deployed prior polish living in these files: native wording (clean->spielfrei, DiGA wording), marketing de-AI pass (live on prod). - NEXT_RELEASE.md seeded for the next app release. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
547f86187b
commit
4987d05f10
@ -25,16 +25,16 @@
|
|||||||
"blocker_feat_custom": "Eigene Domains hinzufügen",
|
"blocker_feat_custom": "Eigene Domains hinzufügen",
|
||||||
"blocker_feat_cooldown": "Cooldown-Schutz vor Rückfällen",
|
"blocker_feat_cooldown": "Cooldown-Schutz vor Rückfällen",
|
||||||
"oasis_badge": "Warum OASIS allein nicht reicht",
|
"oasis_badge": "Warum OASIS allein nicht reicht",
|
||||||
"oasis_title": "Täglich neue Casinos –",
|
"oasis_title": "Täglich neue Casinos,",
|
||||||
"oasis_subtitle": "ohne Lizenz, ohne Sperre.",
|
"oasis_subtitle": "ohne Lizenz, ohne Sperre.",
|
||||||
"oasis_desc": "Der OASIS-Selbstausschluss sperrt dich nur bei lizenzierten Anbietern. Doch täglich gehen neue Casino-Seiten online – viele ohne Lizenz, viele offshore. Diese Seiten kennen OASIS nicht. ReBreak schützt dich auch dort: mit einer täglich aktualisierten Datenbank von über 208.000 Domains.",
|
"oasis_desc": "Der OASIS-Selbstausschluss sperrt dich nur bei lizenzierten Anbietern. Aber täglich gehen neue Casino-Seiten online. Viele ohne Lizenz, viele offshore. Diese Seiten kennen OASIS nicht. ReBreak schützt dich auch dort: mit einer täglich aktualisierten Datenbank von über 300.000 Domains.",
|
||||||
"oasis_new_domains": "neue Gambling-Domains täglich",
|
"oasis_new_domains": "neue Gambling-Domains täglich",
|
||||||
"oasis_offshore": "Casinos ohne Lizenz umgehen OASIS komplett",
|
"oasis_offshore": "Casinos ohne Lizenz umgehen OASIS komplett",
|
||||||
"oasis_updated": "Domains täglich aktualisiert durch ReBreak",
|
"oasis_updated": "Domains täglich aktualisiert durch ReBreak",
|
||||||
"streak_badge": "Streak & Ersparnisse",
|
"streak_badge": "Streak & Ersparnisse",
|
||||||
"streak_title": "Jeden Tag zählt.",
|
"streak_title": "Jeden Tag zählt.",
|
||||||
"streak_subtitle": "Sichtbarer Fortschritt.",
|
"streak_subtitle": "Sichtbarer Fortschritt.",
|
||||||
"streak_desc": "Sieh wie viele Tage du gewonnen hast – und wie viel Geld du nicht verloren hast. Meilenstein-Badges motivieren weiter.",
|
"streak_desc": "Sieh wie viele Tage du gewonnen hast, und wie viel Geld du nicht verloren hast. Meilenstein-Badges motivieren weiter.",
|
||||||
"streak_days_free": "Tage frei",
|
"streak_days_free": "Tage frei",
|
||||||
"streak_saved": "gespart",
|
"streak_saved": "gespart",
|
||||||
"crisis_badge": "Krisenmomente meistern",
|
"crisis_badge": "Krisenmomente meistern",
|
||||||
@ -42,14 +42,14 @@
|
|||||||
"crisis_subtitle": "Du bist vorbereitet.",
|
"crisis_subtitle": "Du bist vorbereitet.",
|
||||||
"sos_title": "SOS – Sofort-Hilfe",
|
"sos_title": "SOS – Sofort-Hilfe",
|
||||||
"sos_subtitle": "Ein Klick. Sofort.",
|
"sos_subtitle": "Ein Klick. Sofort.",
|
||||||
"sos_desc": "Der Drang dauert im Schnitt nur 15–20 Minuten. ReBreak führt dich Schritt für Schritt durch diesen Moment – bis er vorüber ist.",
|
"sos_desc": "Der Drang dauert im Schnitt nur 15–20 Minuten. ReBreak führt dich Schritt für Schritt durch diesen Moment, bis er vorüber ist.",
|
||||||
"sos_angry": "Wütend",
|
"sos_angry": "Wütend",
|
||||||
"sos_sad": "Niedergedrückt",
|
"sos_sad": "Niedergedrückt",
|
||||||
"sos_stressed": "Gestresst",
|
"sos_stressed": "Gestresst",
|
||||||
"sos_empty": "Leer",
|
"sos_empty": "Leer",
|
||||||
"breathing_title": "4-7-8 Atemübung",
|
"breathing_title": "4-7-8 Atemübung",
|
||||||
"breathing_subtitle": "Puls senken in 60 Sekunden",
|
"breathing_subtitle": "Puls senken in 60 Sekunden",
|
||||||
"breathing_desc": "Wissenschaftlich belegt: 4 Sekunden einatmen, 7 halten, 8 ausatmen – der Körper schaltet automatisch in den Ruhemodus.",
|
"breathing_desc": "Wissenschaftlich belegt: 4 Sekunden einatmen, 7 halten, 8 ausatmen, und der Körper schaltet automatisch in den Ruhemodus.",
|
||||||
"breathing_breathe": "Atme",
|
"breathing_breathe": "Atme",
|
||||||
"breathing_inhale": "4s einatmen",
|
"breathing_inhale": "4s einatmen",
|
||||||
"breathing_hold": "7s halten",
|
"breathing_hold": "7s halten",
|
||||||
@ -57,19 +57,19 @@
|
|||||||
"coach_badge": "Wenn SOS nicht reicht",
|
"coach_badge": "Wenn SOS nicht reicht",
|
||||||
"coach_title": "Coach & Community.",
|
"coach_title": "Coach & Community.",
|
||||||
"coach_subtitle": "Immer auf Abruf.",
|
"coach_subtitle": "Immer auf Abruf.",
|
||||||
"coach_desc": "Ein KI-Coach, der dich wirklich kennt – personalisiert, CBT-basiert, ohne Urteil. Und eine echte Community aus Menschen, die verstehen was du durchmachst.",
|
"coach_desc": "Ein KI-Coach, der dich kennt: personalisiert, CBT-basiert, ohne Urteil. Dazu eine echte Community aus Menschen, die verstehen was du durchmachst.",
|
||||||
"coach_label": "KI-Coach",
|
"coach_label": "KI-Coach",
|
||||||
"founding_badge": "Gründungsmitglied",
|
"founding_badge": "Gründungsmitglied",
|
||||||
"founding_desc": "Die ersten {count} Mitglieder bekommen 1 Monat Standard gratis – automatisch, kein Code nötig.",
|
"founding_desc": "Die ersten {count} Mitglieder bekommen 1 Monat Standard gratis, automatisch, kein Code nötig.",
|
||||||
"founding_slots": "{current} / {total} Plätze",
|
"founding_slots": "{current} / {total} Plätze",
|
||||||
"founding_cta": "Jetzt Platz sichern – kostenlos",
|
"founding_cta": "Jetzt Platz sichern, kostenlos",
|
||||||
"mail_badge": "Mail-Bereinigung",
|
"mail_badge": "Mail-Bereinigung",
|
||||||
"mail_title": "Bonus-Mails?",
|
"mail_title": "Bonus-Mails?",
|
||||||
"mail_subtitle": "Nie gesehen.",
|
"mail_subtitle": "Nie gesehen.",
|
||||||
"mail_desc": "Casinos bombardieren dich täglich mit Angeboten und Rabatten. ReBreak verbindet sich mit deinem Postfach und verschiebt diese Mails in den Papierkorb – bevor du sie siehst.",
|
"mail_desc": "Casinos bombardieren dich täglich mit Angeboten und Rabatten. ReBreak verbindet sich mit deinem Postfach und verschiebt diese Mails in den Papierkorb, bevor du sie überhaupt siehst.",
|
||||||
"mail_feat_providers": "Gmail, GMX, Outlook – alle großen Anbieter",
|
"mail_feat_providers": "Gmail, GMX, Outlook und alle großen Anbieter",
|
||||||
"mail_feat_intervals": "Echtzeit, stündlich oder alle 4 Stunden",
|
"mail_feat_intervals": "Echtzeit, stündlich oder alle 4 Stunden",
|
||||||
"mail_feat_privacy": "Keine Mail wird gelesen – nur analysiert",
|
"mail_feat_privacy": "Keine Mail wird gelesen, nur analysiert",
|
||||||
"mail_mock_blocked": "Blockiert",
|
"mail_mock_blocked": "Blockiert",
|
||||||
"mail_mock_scanned": "Gescannt",
|
"mail_mock_scanned": "Gescannt",
|
||||||
"mail_mock_rate": "Treffer",
|
"mail_mock_rate": "Treffer",
|
||||||
@ -78,7 +78,7 @@
|
|||||||
"magic_badge": "Lock-Modus für iPhone",
|
"magic_badge": "Lock-Modus für iPhone",
|
||||||
"magic_title": "RebreakMagic.",
|
"magic_title": "RebreakMagic.",
|
||||||
"magic_subtitle": "Der Lock-Modus ohne Reset.",
|
"magic_subtitle": "Der Lock-Modus ohne Reset.",
|
||||||
"magic_desc": "Eine kleine Mac-Begleit-App, die dein iPhone in den Lock-Modus versetzt — ReBreak ist danach nicht mehr löschbar und der Filter nicht mehr abschaltbar. „Magic“, weil das normalerweise einen kompletten iPhone-Reset bedeutet. Bei uns: USB anschließen, ein Klick, ~2 Minuten — Fotos, Apps und Daten bleiben.",
|
"magic_desc": "Eine kleine Mac-Begleit-App, die dein iPhone in den Lock-Modus versetzt. ReBreak ist danach nicht mehr löschbar und der Filter nicht mehr abschaltbar. „Magic“, weil das normalerweise einen kompletten iPhone-Reset bedeutet. Bei uns reicht USB anschließen, ein Klick, ~2 Minuten. Fotos, Apps und Daten bleiben.",
|
||||||
"magic_feat_noreset": "Kein Werks-Reset, keine Datenmigration",
|
"magic_feat_noreset": "Kein Werks-Reset, keine Datenmigration",
|
||||||
"magic_feat_speed": "~2 Minuten Setup via USB-Kabel",
|
"magic_feat_speed": "~2 Minuten Setup via USB-Kabel",
|
||||||
"magic_feat_lock": "App nicht mehr löschbar, Filter nicht abschaltbar",
|
"magic_feat_lock": "App nicht mehr löschbar, Filter nicht abschaltbar",
|
||||||
@ -87,8 +87,8 @@
|
|||||||
"magic_cta_windows": "ReBreak für Windows laden",
|
"magic_cta_windows": "ReBreak für Windows laden",
|
||||||
"magic_note": "Optional. Empfohlen für Phasen mit hohem Bypass-Risiko.",
|
"magic_note": "Optional. Empfohlen für Phasen mit hohem Bypass-Risiko.",
|
||||||
"final_title": "Fang jetzt an.",
|
"final_title": "Fang jetzt an.",
|
||||||
"final_desc": "Du bist nicht kaputt. Das System ist manipulativ. Wir helfen dir zurück.",
|
"final_desc": "Du bist nicht kaputt. Das System ist darauf ausgelegt, dich festzuhalten. Wir helfen dir wieder raus.",
|
||||||
"final_cta": "14 Tage kostenlos testen – anonym",
|
"final_cta": "14 Tage kostenlos testen, anonym",
|
||||||
"chat_msg_1": "Ich spüre den Drang wieder stark...",
|
"chat_msg_1": "Ich spüre den Drang wieder stark...",
|
||||||
"chat_msg_2": "Ich verstehe. Was triggert dich gerade? Lass uns das durchgehen.",
|
"chat_msg_2": "Ich verstehe. Was triggert dich gerade? Lass uns das durchgehen.",
|
||||||
"chat_msg_3": "Stress bei der Arbeit.",
|
"chat_msg_3": "Stress bei der Arbeit.",
|
||||||
@ -97,7 +97,7 @@
|
|||||||
"blocked": {
|
"blocked": {
|
||||||
"lyra": "Lyra",
|
"lyra": "Lyra",
|
||||||
"title": "Diese Seite ist blockiert",
|
"title": "Diese Seite ist blockiert",
|
||||||
"message": "ReBreak hat diese Seite für dich gesperrt. Du hast dich entschieden, stark zu sein – und das hier ist der Beweis.",
|
"message": "ReBreak hat diese Seite für dich gesperrt. Du hast dich entschieden, stark zu sein, und das hier ist der Beweis.",
|
||||||
"day": "Tag",
|
"day": "Tag",
|
||||||
"days": "Tage",
|
"days": "Tage",
|
||||||
"clean": "clean",
|
"clean": "clean",
|
||||||
@ -107,14 +107,14 @@
|
|||||||
"back_to_app": "Zurück zur App",
|
"back_to_app": "Zurück zur App",
|
||||||
"quote_1": "Jede blockierte Seite ist ein Beweis deiner Stärke.",
|
"quote_1": "Jede blockierte Seite ist ein Beweis deiner Stärke.",
|
||||||
"quote_2": "Der Drang geht vorbei. Dein Fortschritt bleibt.",
|
"quote_2": "Der Drang geht vorbei. Dein Fortschritt bleibt.",
|
||||||
"quote_3": "Du hast diese Seite nicht gebraucht – und du brauchst sie nicht.",
|
"quote_3": "Du hast diese Seite nicht gebraucht, und du brauchst sie nicht.",
|
||||||
"quote_4": "Stark sein bedeutet, in diesem Moment Nein zu sagen.",
|
"quote_4": "Stark sein bedeutet, in diesem Moment Nein zu sagen.",
|
||||||
"quote_5": "Das hier ist dein Schutzwall. Du hast ihn aufgebaut."
|
"quote_5": "Das hier ist dein Schutzwall. Du hast ihn aufgebaut."
|
||||||
},
|
},
|
||||||
"resources": {
|
"resources": {
|
||||||
"blocklist_title": "Community-Blocklist",
|
"blocklist_title": "Community-Blocklist",
|
||||||
"blocklist_desc": "Wächst täglich – von der Community, für die Community. Aktuell {count} Domains blockiert.",
|
"blocklist_desc": "Wächst täglich, von der Community für die Community. Aktuell {count} Domains blockiert.",
|
||||||
"chart_label": "Blockierte Domains – letzten 12 Monate",
|
"chart_label": "Blockierte Domains, letzte 12 Monate",
|
||||||
"hotlines_title": "Sofort-Hilfe & Hotlines",
|
"hotlines_title": "Sofort-Hilfe & Hotlines",
|
||||||
"hotlines_desc": "Kostenlos, anonym, rund um die Uhr erreichbar.",
|
"hotlines_desc": "Kostenlos, anonym, rund um die Uhr erreichbar.",
|
||||||
"tips_title": "Was jetzt hilft",
|
"tips_title": "Was jetzt hilft",
|
||||||
@ -129,28 +129,28 @@
|
|||||||
"tip_breathing": "4-7-8 Atemübung bei akutem Drang",
|
"tip_breathing": "4-7-8 Atemübung bei akutem Drang",
|
||||||
"tip_breathing_desc": "4 Sek. einatmen, 7 halten, 8 ausatmen. Aktiviert das parasympathische Nervensystem und bricht den Impulsdrang.",
|
"tip_breathing_desc": "4 Sek. einatmen, 7 halten, 8 ausatmen. Aktiviert das parasympathische Nervensystem und bricht den Impulsdrang.",
|
||||||
"tip_15min": "Die 15-Minuten-Regel",
|
"tip_15min": "Die 15-Minuten-Regel",
|
||||||
"tip_15min_desc": "Warte 15 Minuten bevor du eine Entscheidung triffst. Gambling-Drang ist eine Welle – sie kommt und geht.",
|
"tip_15min_desc": "Warte 15 Minuten bevor du eine Entscheidung triffst. Gambling-Drang ist eine Welle, die kommt und wieder geht.",
|
||||||
"tip_move": "Raus und bewegen",
|
"tip_move": "Raus und bewegen",
|
||||||
"tip_move_desc": "Ein 10-minütiger Spaziergang setzt Endorphine frei und unterbricht automatisch den Drang-Kreislauf.",
|
"tip_move_desc": "Ein 10-minütiger Spaziergang setzt Endorphine frei und unterbricht automatisch den Drang-Kreislauf.",
|
||||||
"tip_triggers": "Trigger kennen",
|
"tip_triggers": "Trigger kennen",
|
||||||
"tip_triggers_desc": "Stress, Langeweile, Abend allein? Wer seine Muster kennt, kann gegensteuern bevor der Drang überwältigt.",
|
"tip_triggers_desc": "Stress, Langeweile, Abend allein? Wer seine Muster kennt, kann gegensteuern bevor der Drang überwältigt.",
|
||||||
"fact1_title": "Variable Belohnungen aktivieren denselben Kreislauf wie Drogen",
|
"fact1_title": "Variable Belohnungen aktivieren denselben Kreislauf wie Drogen",
|
||||||
"fact1_text": "Das Nicht-Wissen, ob man gewinnt, schüttet mehr Dopamin aus als ein sicherer Gewinn. Design, kein Zufall.",
|
"fact1_text": "Das Nicht-Wissen, ob man gewinnt, schüttet mehr Dopamin aus als ein sicherer Gewinn. Design, kein Zufall.",
|
||||||
"fact2_title": "Online-Casinos sind 24/7 verfügbar – kein natürlicher Stopper",
|
"fact2_title": "Online-Casinos sind 24/7 verfügbar, ohne natürlichen Stopper",
|
||||||
"fact2_text": "Früher war das Casino physisch. Heute ist es das Handy. Kein Schließtag, keine Scham durch andere.",
|
"fact2_text": "Früher war das Casino physisch. Heute ist es das Handy. Kein Schließtag, keine Scham durch andere.",
|
||||||
"fact3_title": "Virtuelle Währungen verschleiern echten Geldverlust",
|
"fact3_title": "Virtuelle Währungen verschleiern echten Geldverlust",
|
||||||
"fact3_text": "Chips, Coins, Credits – das Gehirn verarbeitet diese nicht wie Bargeld. Das ist kein Fehler im System.",
|
"fact3_text": "Chips, Coins, Credits: das Gehirn verarbeitet diese nicht wie Bargeld. Das ist kein Fehler im System.",
|
||||||
"fact4_title": "Die Quote gewinnt immer – mathematisch",
|
"fact4_title": "Die Quote gewinnt immer, rein mathematisch",
|
||||||
"fact4_text": "Jedes legale Casino hat eingebaute Marge. Langfristig verlieren 100 % der Spieler Geld. Keine Pechsträhne."
|
"fact4_text": "Jedes legale Casino hat eingebaute Marge. Langfristig verlieren 100 % der Spieler Geld. Keine Pechsträhne."
|
||||||
},
|
},
|
||||||
"pricing": {
|
"pricing": {
|
||||||
"founding_banner": "Founding Member – Die ersten 100 bekommen 3 Monate Legend gratis",
|
"founding_banner": "Founding Member: Die ersten 100 bekommen 3 Monate Legend gratis",
|
||||||
"title": "Dein Weg, dein Tempo",
|
"title": "Dein Weg, dein Tempo",
|
||||||
"subtitle_start": "Jetzt starten –",
|
"subtitle_start": "Jetzt starten,",
|
||||||
"subtitle_end": "wähle deinen Plan.",
|
"subtitle_end": "wähle deinen Plan.",
|
||||||
"cross_device_tagline": "Ein Abo schützt alle deine Geräte – Handy und Computer, geräteübergreifend.",
|
"cross_device_tagline": "Ein Abo schützt alle deine Geräte: Handy und Computer, geräteübergreifend.",
|
||||||
"pro_meaning_title": "Was bedeutet Pro wirklich?",
|
"pro_meaning_title": "Was bedeutet Pro wirklich?",
|
||||||
"pro_meaning_desc": "Mit Pro trägst du aktiv dazu bei, dass die ReBreak Blocklist für alle wächst. Du kannst Domains direkt hinzufügen und Einreichungen anderer Nutzer prüfen. Du leitest Gruppen, hast keinen KI-Gedächtnisverlust – und stehst an der Spitze für alle, die noch kämpfen.",
|
"pro_meaning_desc": "Mit Pro trägst du aktiv dazu bei, dass die ReBreak Blocklist für alle wächst. Du kannst Domains direkt hinzufügen und Einreichungen anderer Nutzer prüfen. Du leitest Gruppen, hast keinen KI-Gedächtnisverlust und stehst vorne für alle, die noch kämpfen.",
|
||||||
"comparison_title": "Was ist inklusive?",
|
"comparison_title": "Was ist inklusive?",
|
||||||
"comparison_subtitle": "Vollständiger Vergleich aller Pläne",
|
"comparison_subtitle": "Vollständiger Vergleich aller Pläne",
|
||||||
"feature": "Feature",
|
"feature": "Feature",
|
||||||
@ -172,17 +172,17 @@
|
|||||||
"billing_per_month": "/ Monat",
|
"billing_per_month": "/ Monat",
|
||||||
"billing_per_year": "/ Monat, jährlich",
|
"billing_per_year": "/ Monat, jährlich",
|
||||||
"plan_pro_title": "Pro",
|
"plan_pro_title": "Pro",
|
||||||
"plan_pro_desc": "Voller Schutz für ein Gerät – alles, was du im Alltag brauchst.",
|
"plan_pro_desc": "Voller Schutz für ein Gerät, alles was du im Alltag brauchst.",
|
||||||
"plan_pro_btn": "Pro starten",
|
"plan_pro_btn": "Pro starten",
|
||||||
"plan_legend_title": "Legend",
|
"plan_legend_title": "Legend",
|
||||||
"plan_legend_desc": "Lückenloser Schutz auf bis zu 5 Geräten – inkl. Selbstbindungs-Modus.",
|
"plan_legend_desc": "Lückenloser Schutz auf bis zu 5 Geräten, inkl. Selbstbindungs-Modus.",
|
||||||
"plan_legend_btn": "Legend starten",
|
"plan_legend_btn": "Legend starten",
|
||||||
"plan_loading": "Wird geladen...",
|
"plan_loading": "Wird geladen...",
|
||||||
"plan_recommended": "Empfohlen",
|
"plan_recommended": "Empfohlen",
|
||||||
"feat_pro_devices": "2 Geräte – 1 Smartphone (iOS/Android) + 1 Computer (Mac oder Windows)",
|
"feat_pro_devices": "2 Geräte: 1 Smartphone (iOS/Android) + 1 Computer (Mac oder Windows)",
|
||||||
"feat_pro_domains": "5 eigene Domains (rückfüllbar)",
|
"feat_pro_domains": "5 eigene Domains (rückfüllbar)",
|
||||||
"feat_pro_mail": "Echtzeit-Mail-Schutz (IMAP-IDLE, 2 Konten)",
|
"feat_pro_mail": "Echtzeit-Mail-Schutz (IMAP-IDLE, 2 Konten)",
|
||||||
"feat_blocklist": "ReBreak Blocklist (208k+ Domains)",
|
"feat_blocklist": "ReBreak Blocklist (300k+ Domains)",
|
||||||
"feat_coach_pro": "KI-Coach Lyra mit Streak & Urge-Statistiken",
|
"feat_coach_pro": "KI-Coach Lyra mit Streak & Urge-Statistiken",
|
||||||
"feat_streak": "Streak & Ersparnisse Tracker",
|
"feat_streak": "Streak & Ersparnisse Tracker",
|
||||||
"feat_urge": "Urge Tracker + Atemübung",
|
"feat_urge": "Urge Tracker + Atemübung",
|
||||||
@ -192,10 +192,10 @@
|
|||||||
"feat_buddy": "Buddy System",
|
"feat_buddy": "Buddy System",
|
||||||
"feat_urge_stats": "Urge-Statistiken & Muster",
|
"feat_urge_stats": "Urge-Statistiken & Muster",
|
||||||
"feat_all_pro": "Alles aus Pro",
|
"feat_all_pro": "Alles aus Pro",
|
||||||
"feat_legend_devices": "5 Geräte – 3 mobil (iOS/Android) + 2 stationär (Mac & Windows)",
|
"feat_legend_devices": "5 Geräte: 3 mobil (iOS/Android) + 2 stationär (Mac & Windows)",
|
||||||
"feat_legend_domains": "Unbegrenzte eigene Domains",
|
"feat_legend_domains": "Unbegrenzte eigene Domains",
|
||||||
"feat_legend_mail": "Echtzeit-Mail-Schutz (IMAP-IDLE, unbegrenzte Konten)",
|
"feat_legend_mail": "Echtzeit-Mail-Schutz (IMAP-IDLE, unbegrenzte Konten)",
|
||||||
"feat_legend_binder": "RebReakBinder – Selbstbindungs-Modus (opt-in, macOS)",
|
"feat_legend_binder": "RebReakBinder: Selbstbindungs-Modus (opt-in, macOS)",
|
||||||
"feat_legend_add": "Domains direkt zur ReBreak Blocklist hinzufügen",
|
"feat_legend_add": "Domains direkt zur ReBreak Blocklist hinzufügen",
|
||||||
"feat_legend_validate": "Community-Domains validieren",
|
"feat_legend_validate": "Community-Domains validieren",
|
||||||
"feat_legend_groups": "Gruppen gründen & leiten",
|
"feat_legend_groups": "Gruppen gründen & leiten",
|
||||||
@ -204,7 +204,7 @@
|
|||||||
"comp_domains": "Eigene Domains",
|
"comp_domains": "Eigene Domains",
|
||||||
"comp_mail": "Mail-Schutz",
|
"comp_mail": "Mail-Schutz",
|
||||||
"comp_coach": "KI-Coach Lyra",
|
"comp_coach": "KI-Coach Lyra",
|
||||||
"comp_blocklist": "ReBreak Blocklist (208k+ Domains)",
|
"comp_blocklist": "ReBreak Blocklist (300k+ Domains)",
|
||||||
"comp_streak": "Streak & Ersparnisse Tracker",
|
"comp_streak": "Streak & Ersparnisse Tracker",
|
||||||
"comp_urge": "Urge Tracker + Atemübung",
|
"comp_urge": "Urge Tracker + Atemübung",
|
||||||
"comp_sos": "SOS-Button (Sofort-Hilfe)",
|
"comp_sos": "SOS-Button (Sofort-Hilfe)",
|
||||||
@ -225,15 +225,15 @@
|
|||||||
"comp_pro_coach_val": "Streak + Urge-Stats",
|
"comp_pro_coach_val": "Streak + Urge-Stats",
|
||||||
"comp_legend_coach_val": "+ Langzeit-Gedächtnis",
|
"comp_legend_coach_val": "+ Langzeit-Gedächtnis",
|
||||||
"faq1_q": "Muss ich eine E-Mail-Adresse angeben?",
|
"faq1_q": "Muss ich eine E-Mail-Adresse angeben?",
|
||||||
"faq1_a": "Ja, für die Registrierung wird eine E-Mail-Adresse benötigt. Deine Daten werden ausschließlich auf deutschen Servern gespeichert und verarbeitet – vollständig anonym, nach strengen DSGVO-Standards. Kein Name, kein Standort, kein Nutzungsverhalten wird an Dritte weitergegeben.",
|
"faq1_a": "Ja, für die Registrierung wird eine E-Mail-Adresse benötigt. Deine Daten werden ausschließlich auf deutschen Servern gespeichert und verarbeitet, vollständig anonym und nach strengen DSGVO-Standards. Kein Name, kein Standort, kein Nutzungsverhalten wird an Dritte weitergegeben.",
|
||||||
"faq2_q": "Was ist der Unterschied zwischen Pro und Legend?",
|
"faq2_q": "Was ist der Unterschied zwischen Pro und Legend?",
|
||||||
"faq2_a": "Pro schützt 2 Geräte – dein Smartphone und deinen Computer (Mac oder Windows) – mit Echtzeit-Mail-Schutz (IMAP-IDLE, 2 Konten), ReBreak Blocklist (208k+ Domains) und Lyra mit Streak/Urge-Stats. Legend deckt BIS ZU 5 Geräte ab (3 mobil + 2 stationär), hat unbegrenzte Mail-Konten und Domains, schaltet den Rebreak-Magic-Selbstbindungs-Modus frei und gibt dir Lyra mit Langzeit-Gedächtnis sowie Gruppen-Leitung.",
|
"faq2_a": "Pro schützt 2 Geräte, also dein Smartphone und deinen Computer (Mac oder Windows), mit Echtzeit-Mail-Schutz (IMAP-IDLE, 2 Konten), ReBreak Blocklist (300k+ Domains) und Lyra mit Streak/Urge-Stats. Legend deckt BIS ZU 5 Geräte ab (3 mobil + 2 stationär), hat unbegrenzte Mail-Konten und Domains, schaltet den Rebreak-Magic-Selbstbindungs-Modus frei und gibt dir Lyra mit Langzeit-Gedächtnis sowie Gruppen-Leitung.",
|
||||||
"faq3_q": "Welche Zahlungszyklen gibt es?",
|
"faq3_q": "Welche Zahlungszyklen gibt es?",
|
||||||
"faq3_a": "Monatlich (voller Preis) oder jährlich (Spare 39%). Du kannst jederzeit wechseln.",
|
"faq3_a": "Monatlich (voller Preis) oder jährlich (Spare 39%). Du kannst jederzeit wechseln.",
|
||||||
"faq4_q": "Kann ich jederzeit kündigen?",
|
"faq4_q": "Kann ich jederzeit kündigen?",
|
||||||
"faq4_a": "Ja, du kannst dein Abo jederzeit kündigen. Du behältst den Zugang bis zum Ende der bezahlten Periode.",
|
"faq4_a": "Ja, du kannst dein Abo jederzeit kündigen. Du behältst den Zugang bis zum Ende der bezahlten Periode.",
|
||||||
"faq5_q": "Was ist der RebReakBinder?",
|
"faq5_q": "Was ist der RebReakBinder?",
|
||||||
"faq5_a": "Der RebReakBinder ist ein optionaler Selbstbindungs-Modus auf macOS (Legend exklusiv). Er bindet die Schutz-App so an dein Gerät, dass du sie im akuten Druck NICHT einfach selbst deinstallieren kannst – nur eine Vertrauensperson kann lösen. Vollständig opt-in, jederzeit umkehrbar mit Bedenkzeit.",
|
"faq5_a": "Der RebReakBinder ist ein optionaler Selbstbindungs-Modus auf macOS (Legend exklusiv). Er bindet die Schutz-App so an dein Gerät, dass du sie im akuten Druck NICHT einfach selbst deinstallieren kannst. Lösen kann nur eine Vertrauensperson. Vollständig opt-in, jederzeit umkehrbar mit Bedenkzeit.",
|
||||||
"faq6_q": "Ist ReBreak ein Ersatz für professionelle Hilfe?",
|
"faq6_q": "Ist ReBreak ein Ersatz für professionelle Hilfe?",
|
||||||
"faq6_a": "Nein. ReBreak ist ein Selbsthilfe-Tool. Bei Krisen: BZgA Sucht & Drogen Hotline 0800 1372700 oder Telefonseelsorge 0800 1110 111."
|
"faq6_a": "Nein. ReBreak ist ein Selbsthilfe-Tool. Bei Krisen: BZgA Sucht & Drogen Hotline 0800 1372700 oder Telefonseelsorge 0800 1110 111."
|
||||||
}
|
}
|
||||||
|
|||||||
@ -25,16 +25,16 @@
|
|||||||
"blocker_feat_custom": "Add custom domains",
|
"blocker_feat_custom": "Add custom domains",
|
||||||
"blocker_feat_cooldown": "Cooldown protection against relapses",
|
"blocker_feat_cooldown": "Cooldown protection against relapses",
|
||||||
"oasis_badge": "Why OASIS alone isn't enough",
|
"oasis_badge": "Why OASIS alone isn't enough",
|
||||||
"oasis_title": "New casinos daily –",
|
"oasis_title": "New casinos every day,",
|
||||||
"oasis_subtitle": "without license, without ban.",
|
"oasis_subtitle": "without license, without ban.",
|
||||||
"oasis_desc": "The OASIS self-exclusion only blocks you at licensed providers. But new casino sites go online daily – many without a license, many offshore. These sites don't know OASIS. ReBreak protects you there too: with a daily updated database of over 208,000 domains.",
|
"oasis_desc": "The OASIS self-exclusion only blocks you at licensed providers. But new casino sites go online every single day. Many without a license, many offshore. These sites don't know OASIS. ReBreak protects you there too, with a daily updated database of over 300,000 domains.",
|
||||||
"oasis_new_domains": "new gambling domains daily",
|
"oasis_new_domains": "new gambling domains daily",
|
||||||
"oasis_offshore": "Casinos without license bypass OASIS completely",
|
"oasis_offshore": "Casinos without license bypass OASIS completely",
|
||||||
"oasis_updated": "Domains updated daily by ReBreak",
|
"oasis_updated": "Domains updated daily by ReBreak",
|
||||||
"streak_badge": "Streak & Savings",
|
"streak_badge": "Streak & Savings",
|
||||||
"streak_title": "Every day counts.",
|
"streak_title": "Every day counts.",
|
||||||
"streak_subtitle": "Visible progress.",
|
"streak_subtitle": "Visible progress.",
|
||||||
"streak_desc": "See how many days you've won – and how much money you haven't lost. Milestone badges keep you motivated.",
|
"streak_desc": "See how many days you've won, and how much money you haven't lost. Milestone badges keep you motivated.",
|
||||||
"streak_days_free": "Days free",
|
"streak_days_free": "Days free",
|
||||||
"streak_saved": "saved",
|
"streak_saved": "saved",
|
||||||
"crisis_badge": "Mastering crisis moments",
|
"crisis_badge": "Mastering crisis moments",
|
||||||
@ -42,14 +42,14 @@
|
|||||||
"crisis_subtitle": "You are prepared.",
|
"crisis_subtitle": "You are prepared.",
|
||||||
"sos_title": "SOS – Instant Help",
|
"sos_title": "SOS – Instant Help",
|
||||||
"sos_subtitle": "One click. Instant.",
|
"sos_subtitle": "One click. Instant.",
|
||||||
"sos_desc": "The urge lasts on average only 15–20 minutes. ReBreak guides you step by step through this moment – until it passes.",
|
"sos_desc": "The urge lasts on average only 15–20 minutes. ReBreak guides you step by step through this moment, until it passes.",
|
||||||
"sos_angry": "Angry",
|
"sos_angry": "Angry",
|
||||||
"sos_sad": "Depressed",
|
"sos_sad": "Depressed",
|
||||||
"sos_stressed": "Stressed",
|
"sos_stressed": "Stressed",
|
||||||
"sos_empty": "Empty",
|
"sos_empty": "Empty",
|
||||||
"breathing_title": "4-7-8 Breathing Exercise",
|
"breathing_title": "4-7-8 Breathing Exercise",
|
||||||
"breathing_subtitle": "Lower pulse in 60 seconds",
|
"breathing_subtitle": "Lower pulse in 60 seconds",
|
||||||
"breathing_desc": "Scientifically proven: breathe in for 4 seconds, hold for 7, breathe out for 8 – the body automatically switches to rest mode.",
|
"breathing_desc": "Scientifically proven: breathe in for 4 seconds, hold for 7, breathe out for 8, and the body automatically switches to rest mode.",
|
||||||
"breathing_breathe": "Breathe",
|
"breathing_breathe": "Breathe",
|
||||||
"breathing_inhale": "4s inhale",
|
"breathing_inhale": "4s inhale",
|
||||||
"breathing_hold": "7s hold",
|
"breathing_hold": "7s hold",
|
||||||
@ -57,19 +57,19 @@
|
|||||||
"coach_badge": "When SOS isn't enough",
|
"coach_badge": "When SOS isn't enough",
|
||||||
"coach_title": "Coach & Community.",
|
"coach_title": "Coach & Community.",
|
||||||
"coach_subtitle": "Always on call.",
|
"coach_subtitle": "Always on call.",
|
||||||
"coach_desc": "An AI coach that truly knows you – personalized, CBT-based, without judgment. And a real community of people who understand what you're going through.",
|
"coach_desc": "An AI coach that knows you: personalized, CBT-based, without judgment. Plus a real community of people who understand what you're going through.",
|
||||||
"coach_label": "AI Coach",
|
"coach_label": "AI Coach",
|
||||||
"founding_badge": "Founding Member",
|
"founding_badge": "Founding Member",
|
||||||
"founding_desc": "The first {count} members get 1 month Standard free – automatically, no code needed.",
|
"founding_desc": "The first {count} members get 1 month Standard free, automatically, no code needed.",
|
||||||
"founding_slots": "{current} / {total} Spots",
|
"founding_slots": "{current} / {total} Spots",
|
||||||
"founding_cta": "Secure your spot – free",
|
"founding_cta": "Secure your spot, free",
|
||||||
"mail_badge": "Mail Cleanup",
|
"mail_badge": "Mail Cleanup",
|
||||||
"mail_title": "Bonus emails?",
|
"mail_title": "Bonus emails?",
|
||||||
"mail_subtitle": "Never seen.",
|
"mail_subtitle": "Never seen.",
|
||||||
"mail_desc": "Casinos bombard you daily with offers and discounts. ReBreak connects to your inbox and moves these emails to trash – before you see them.",
|
"mail_desc": "Casinos bombard you daily with offers and discounts. ReBreak connects to your inbox and moves these emails to trash before you ever see them.",
|
||||||
"mail_feat_providers": "Gmail, GMX, Outlook – all major providers",
|
"mail_feat_providers": "Gmail, GMX, Outlook and all major providers",
|
||||||
"mail_feat_intervals": "Real-time, hourly or every 4 hours",
|
"mail_feat_intervals": "Real-time, hourly or every 4 hours",
|
||||||
"mail_feat_privacy": "No email is read – only analyzed",
|
"mail_feat_privacy": "No email is read, only analyzed",
|
||||||
"mail_mock_blocked": "Blocked",
|
"mail_mock_blocked": "Blocked",
|
||||||
"mail_mock_scanned": "Scanned",
|
"mail_mock_scanned": "Scanned",
|
||||||
"mail_mock_rate": "Hit rate",
|
"mail_mock_rate": "Hit rate",
|
||||||
@ -78,7 +78,7 @@
|
|||||||
"magic_badge": "Lock Mode for iPhone",
|
"magic_badge": "Lock Mode for iPhone",
|
||||||
"magic_title": "RebreakMagic.",
|
"magic_title": "RebreakMagic.",
|
||||||
"magic_subtitle": "Lock Mode without a reset.",
|
"magic_subtitle": "Lock Mode without a reset.",
|
||||||
"magic_desc": "A small Mac companion app that puts your iPhone into Lock Mode — ReBreak can no longer be deleted and the filter can no longer be switched off. “Magic” because this normally requires a full iPhone factory reset. With us: plug in via USB, one click, ~2 minutes — photos, apps and data stay.",
|
"magic_desc": "A small Mac companion app that puts your iPhone into Lock Mode. ReBreak can no longer be deleted and the filter can no longer be switched off. “Magic” because this normally requires a full iPhone factory reset. With us it's plug in via USB, one click, ~2 minutes. Your photos, apps and data stay.",
|
||||||
"magic_feat_noreset": "No factory reset, no data migration",
|
"magic_feat_noreset": "No factory reset, no data migration",
|
||||||
"magic_feat_speed": "~2 minute setup via USB cable",
|
"magic_feat_speed": "~2 minute setup via USB cable",
|
||||||
"magic_feat_lock": "App not removable, filter not switchable",
|
"magic_feat_lock": "App not removable, filter not switchable",
|
||||||
@ -87,8 +87,8 @@
|
|||||||
"magic_cta_windows": "Download ReBreak for Windows",
|
"magic_cta_windows": "Download ReBreak for Windows",
|
||||||
"magic_note": "Optional. Recommended for phases with high bypass risk.",
|
"magic_note": "Optional. Recommended for phases with high bypass risk.",
|
||||||
"final_title": "Start now.",
|
"final_title": "Start now.",
|
||||||
"final_desc": "You're not broken. The system is manipulative. We help you back.",
|
"final_desc": "You're not broken. The system is built to keep you hooked. We help you find your way back.",
|
||||||
"final_cta": "Try free for 14 days – anonymous",
|
"final_cta": "Try free for 14 days, anonymous",
|
||||||
"chat_msg_1": "I feel the urge strongly again...",
|
"chat_msg_1": "I feel the urge strongly again...",
|
||||||
"chat_msg_2": "I understand. What's triggering you right now? Let's go through this.",
|
"chat_msg_2": "I understand. What's triggering you right now? Let's go through this.",
|
||||||
"chat_msg_3": "Stress at work.",
|
"chat_msg_3": "Stress at work.",
|
||||||
@ -97,7 +97,7 @@
|
|||||||
"blocked": {
|
"blocked": {
|
||||||
"lyra": "Lyra",
|
"lyra": "Lyra",
|
||||||
"title": "This site is blocked",
|
"title": "This site is blocked",
|
||||||
"message": "ReBreak blocked this site for you. You chose to be strong – and this is the proof.",
|
"message": "ReBreak blocked this site for you. You chose to be strong, and this is the proof.",
|
||||||
"day": "Day",
|
"day": "Day",
|
||||||
"days": "Days",
|
"days": "Days",
|
||||||
"clean": "clean",
|
"clean": "clean",
|
||||||
@ -107,14 +107,14 @@
|
|||||||
"back_to_app": "Back to app",
|
"back_to_app": "Back to app",
|
||||||
"quote_1": "Every blocked site is proof of your strength.",
|
"quote_1": "Every blocked site is proof of your strength.",
|
||||||
"quote_2": "The urge passes. Your progress stays.",
|
"quote_2": "The urge passes. Your progress stays.",
|
||||||
"quote_3": "You didn't need this site – and you don't need it.",
|
"quote_3": "You didn't need this site, and you don't need it.",
|
||||||
"quote_4": "Being strong means saying no in this moment.",
|
"quote_4": "Being strong means saying no in this moment.",
|
||||||
"quote_5": "This is your wall of protection. You built it."
|
"quote_5": "This is your wall of protection. You built it."
|
||||||
},
|
},
|
||||||
"resources": {
|
"resources": {
|
||||||
"blocklist_title": "Community Blocklist",
|
"blocklist_title": "Community Blocklist",
|
||||||
"blocklist_desc": "Growing daily – by the community, for the community. Currently {count} domains blocked.",
|
"blocklist_desc": "Growing daily, by the community for the community. Currently {count} domains blocked.",
|
||||||
"chart_label": "Blocked domains – last 12 months",
|
"chart_label": "Blocked domains, last 12 months",
|
||||||
"hotlines_title": "Instant Help & Hotlines",
|
"hotlines_title": "Instant Help & Hotlines",
|
||||||
"hotlines_desc": "Free, anonymous, available 24/7.",
|
"hotlines_desc": "Free, anonymous, available 24/7.",
|
||||||
"tips_title": "What helps now",
|
"tips_title": "What helps now",
|
||||||
@ -129,28 +129,28 @@
|
|||||||
"tip_breathing": "4-7-8 breathing exercise for acute urges",
|
"tip_breathing": "4-7-8 breathing exercise for acute urges",
|
||||||
"tip_breathing_desc": "Inhale 4 sec, hold 7, exhale 8. Activates the parasympathetic nervous system and breaks the impulse.",
|
"tip_breathing_desc": "Inhale 4 sec, hold 7, exhale 8. Activates the parasympathetic nervous system and breaks the impulse.",
|
||||||
"tip_15min": "The 15-minute rule",
|
"tip_15min": "The 15-minute rule",
|
||||||
"tip_15min_desc": "Wait 15 minutes before making a decision. Gambling urge is a wave – it comes and goes.",
|
"tip_15min_desc": "Wait 15 minutes before making a decision. The gambling urge is a wave that comes and goes.",
|
||||||
"tip_move": "Get out and move",
|
"tip_move": "Get out and move",
|
||||||
"tip_move_desc": "A 10-minute walk releases endorphins and automatically interrupts the urge cycle.",
|
"tip_move_desc": "A 10-minute walk releases endorphins and automatically interrupts the urge cycle.",
|
||||||
"tip_triggers": "Know your triggers",
|
"tip_triggers": "Know your triggers",
|
||||||
"tip_triggers_desc": "Stress, boredom, evening alone? Those who know their patterns can counteract before the urge overwhelms.",
|
"tip_triggers_desc": "Stress, boredom, evening alone? Those who know their patterns can counteract before the urge overwhelms.",
|
||||||
"fact1_title": "Variable rewards activate the same circuit as drugs",
|
"fact1_title": "Variable rewards activate the same circuit as drugs",
|
||||||
"fact1_text": "Not knowing if you'll win releases more dopamine than a certain win. Design, not accident.",
|
"fact1_text": "Not knowing if you'll win releases more dopamine than a certain win. Design, not accident.",
|
||||||
"fact2_title": "Online casinos are available 24/7 – no natural stopper",
|
"fact2_title": "Online casinos are available 24/7, with no natural stopper",
|
||||||
"fact2_text": "The casino used to be physical. Today it's your phone. No closing day, no shame from others.",
|
"fact2_text": "The casino used to be physical. Today it's your phone. No closing day, no shame from others.",
|
||||||
"fact3_title": "Virtual currencies obscure real money loss",
|
"fact3_title": "Virtual currencies obscure real money loss",
|
||||||
"fact3_text": "Chips, coins, credits – the brain doesn't process these like cash. That's not a bug in the system.",
|
"fact3_text": "Chips, coins, credits: the brain doesn't process these like cash. That's not a bug in the system.",
|
||||||
"fact4_title": "The house always wins – mathematically",
|
"fact4_title": "The house always wins, mathematically",
|
||||||
"fact4_text": "Every legal casino has a built-in margin. Long-term, 100% of players lose money. No bad luck streak."
|
"fact4_text": "Every legal casino has a built-in margin. Long-term, 100% of players lose money. No bad luck streak."
|
||||||
},
|
},
|
||||||
"pricing": {
|
"pricing": {
|
||||||
"founding_banner": "Founding Member – First 100 get 3 months Legend free",
|
"founding_banner": "Founding Member: First 100 get 3 months Legend free",
|
||||||
"title": "Your path, your pace",
|
"title": "Your path, your pace",
|
||||||
"subtitle_start": "Start now –",
|
"subtitle_start": "Start now,",
|
||||||
"subtitle_end": "choose your plan.",
|
"subtitle_end": "choose your plan.",
|
||||||
"cross_device_tagline": "One subscription protects all your devices – phone and computer, everywhere.",
|
"cross_device_tagline": "One subscription protects all your devices: phone and computer, everywhere.",
|
||||||
"pro_meaning_title": "What does Pro really mean?",
|
"pro_meaning_title": "What does Pro really mean?",
|
||||||
"pro_meaning_desc": "With Pro you actively contribute to growing the ReBreak blocklist for everyone. You can add domains directly and review submissions from other users. You lead groups, have no AI memory loss – and stand at the forefront for everyone still fighting.",
|
"pro_meaning_desc": "With Pro you actively contribute to growing the ReBreak blocklist for everyone. You can add domains directly and review submissions from other users. You lead groups, have no AI memory loss, and stand at the front for everyone still fighting.",
|
||||||
"comparison_title": "What's included?",
|
"comparison_title": "What's included?",
|
||||||
"comparison_subtitle": "Complete comparison of all plans",
|
"comparison_subtitle": "Complete comparison of all plans",
|
||||||
"feature": "Feature",
|
"feature": "Feature",
|
||||||
@ -172,17 +172,17 @@
|
|||||||
"billing_per_month": "/ month",
|
"billing_per_month": "/ month",
|
||||||
"billing_per_year": "/ month, billed yearly",
|
"billing_per_year": "/ month, billed yearly",
|
||||||
"plan_pro_title": "Pro",
|
"plan_pro_title": "Pro",
|
||||||
"plan_pro_desc": "Full protection for one device – everything you need day to day.",
|
"plan_pro_desc": "Full protection for one device, everything you need day to day.",
|
||||||
"plan_pro_btn": "Start Pro",
|
"plan_pro_btn": "Start Pro",
|
||||||
"plan_legend_title": "Legend",
|
"plan_legend_title": "Legend",
|
||||||
"plan_legend_desc": "Seamless protection on up to 5 devices – incl. self-binding mode.",
|
"plan_legend_desc": "Seamless protection on up to 5 devices, incl. self-binding mode.",
|
||||||
"plan_legend_btn": "Start Legend",
|
"plan_legend_btn": "Start Legend",
|
||||||
"plan_loading": "Loading...",
|
"plan_loading": "Loading...",
|
||||||
"plan_recommended": "Recommended",
|
"plan_recommended": "Recommended",
|
||||||
"feat_pro_devices": "2 devices – 1 smartphone (iOS/Android) + 1 computer (Mac or Windows)",
|
"feat_pro_devices": "2 devices: 1 smartphone (iOS/Android) + 1 computer (Mac or Windows)",
|
||||||
"feat_pro_domains": "5 custom domains (refillable)",
|
"feat_pro_domains": "5 custom domains (refillable)",
|
||||||
"feat_pro_mail": "Real-time mail protection (IMAP IDLE, 2 accounts)",
|
"feat_pro_mail": "Real-time mail protection (IMAP IDLE, 2 accounts)",
|
||||||
"feat_blocklist": "ReBreak Blocklist (208k+ domains)",
|
"feat_blocklist": "ReBreak Blocklist (300k+ domains)",
|
||||||
"feat_coach_pro": "AI Coach Lyra with streak & urge stats",
|
"feat_coach_pro": "AI Coach Lyra with streak & urge stats",
|
||||||
"feat_streak": "Streak & Savings Tracker",
|
"feat_streak": "Streak & Savings Tracker",
|
||||||
"feat_urge": "Urge Tracker + Breathing Exercise",
|
"feat_urge": "Urge Tracker + Breathing Exercise",
|
||||||
@ -192,10 +192,10 @@
|
|||||||
"feat_buddy": "Buddy System",
|
"feat_buddy": "Buddy System",
|
||||||
"feat_urge_stats": "Urge statistics & patterns",
|
"feat_urge_stats": "Urge statistics & patterns",
|
||||||
"feat_all_pro": "Everything in Pro",
|
"feat_all_pro": "Everything in Pro",
|
||||||
"feat_legend_devices": "5 devices – 3 mobile (iOS/Android) + 2 desktop (Mac & Windows)",
|
"feat_legend_devices": "5 devices: 3 mobile (iOS/Android) + 2 desktop (Mac & Windows)",
|
||||||
"feat_legend_domains": "Unlimited custom domains",
|
"feat_legend_domains": "Unlimited custom domains",
|
||||||
"feat_legend_mail": "Real-time mail protection (IMAP IDLE, unlimited accounts)",
|
"feat_legend_mail": "Real-time mail protection (IMAP IDLE, unlimited accounts)",
|
||||||
"feat_legend_binder": "RebReakBinder – self-binding mode (opt-in, macOS)",
|
"feat_legend_binder": "RebReakBinder: self-binding mode (opt-in, macOS)",
|
||||||
"feat_legend_add": "Add domains directly to the ReBreak Blocklist",
|
"feat_legend_add": "Add domains directly to the ReBreak Blocklist",
|
||||||
"feat_legend_validate": "Validate community domains",
|
"feat_legend_validate": "Validate community domains",
|
||||||
"feat_legend_groups": "Create & lead groups",
|
"feat_legend_groups": "Create & lead groups",
|
||||||
@ -204,7 +204,7 @@
|
|||||||
"comp_domains": "Custom Domains",
|
"comp_domains": "Custom Domains",
|
||||||
"comp_mail": "Mail Protection",
|
"comp_mail": "Mail Protection",
|
||||||
"comp_coach": "AI Coach Lyra",
|
"comp_coach": "AI Coach Lyra",
|
||||||
"comp_blocklist": "ReBreak Blocklist (208k+ domains)",
|
"comp_blocklist": "ReBreak Blocklist (300k+ domains)",
|
||||||
"comp_streak": "Streak & Savings Tracker",
|
"comp_streak": "Streak & Savings Tracker",
|
||||||
"comp_urge": "Urge Tracker + Breathing",
|
"comp_urge": "Urge Tracker + Breathing",
|
||||||
"comp_sos": "SOS Button (Instant Help)",
|
"comp_sos": "SOS Button (Instant Help)",
|
||||||
@ -225,15 +225,15 @@
|
|||||||
"comp_pro_coach_val": "Streak + Urge Stats",
|
"comp_pro_coach_val": "Streak + Urge Stats",
|
||||||
"comp_legend_coach_val": "+ Long-term memory",
|
"comp_legend_coach_val": "+ Long-term memory",
|
||||||
"faq1_q": "Do I need to provide an email address?",
|
"faq1_q": "Do I need to provide an email address?",
|
||||||
"faq1_a": "Yes, an email address is required for registration. Your data is stored and processed exclusively on German servers – fully anonymously, according to strict GDPR standards.",
|
"faq1_a": "Yes, an email address is required for registration. Your data is stored and processed exclusively on German servers, fully anonymously and according to strict GDPR standards.",
|
||||||
"faq2_q": "What's the difference between Pro and Legend?",
|
"faq2_q": "What's the difference between Pro and Legend?",
|
||||||
"faq2_a": "Pro protects 2 devices – your smartphone and your computer (Mac or Windows) – with real-time mail protection (IMAP IDLE, 2 accounts), ReBreak Blocklist (208k+ domains) and Lyra with streak/urge stats. Legend covers UP TO 5 devices (3 mobile + 2 desktop), has unlimited mail accounts and domains, unlocks the Rebreak Magic self-binding mode and gives you Lyra with long-term memory plus group leadership.",
|
"faq2_a": "Pro protects 2 devices, your smartphone and your computer (Mac or Windows), with real-time mail protection (IMAP IDLE, 2 accounts), ReBreak Blocklist (300k+ domains) and Lyra with streak/urge stats. Legend covers UP TO 5 devices (3 mobile + 2 desktop), has unlimited mail accounts and domains, unlocks the Rebreak Magic self-binding mode and gives you Lyra with long-term memory plus group leadership.",
|
||||||
"faq3_q": "What billing cycles are available?",
|
"faq3_q": "What billing cycles are available?",
|
||||||
"faq3_a": "Monthly (full price) or yearly (save 39%). You can switch at any time.",
|
"faq3_a": "Monthly (full price) or yearly (save 39%). You can switch at any time.",
|
||||||
"faq4_q": "Can I cancel at any time?",
|
"faq4_q": "Can I cancel at any time?",
|
||||||
"faq4_a": "Yes, you can cancel your subscription at any time. You keep access until the end of the paid period.",
|
"faq4_a": "Yes, you can cancel your subscription at any time. You keep access until the end of the paid period.",
|
||||||
"faq5_q": "What is the RebReakBinder?",
|
"faq5_q": "What is the RebReakBinder?",
|
||||||
"faq5_a": "The RebReakBinder is an optional self-binding mode on macOS (Legend exclusive). It binds the protection app to your device so you CANNOT uninstall it yourself under acute pressure – only a trusted person can release it. Fully opt-in, reversible at any time with a cooling-off period.",
|
"faq5_a": "The RebReakBinder is an optional self-binding mode on macOS (Legend exclusive). It binds the protection app to your device so you CANNOT uninstall it yourself under acute pressure. Only a trusted person can release it. Fully opt-in, reversible at any time with a cooling-off period.",
|
||||||
"faq6_q": "Is ReBreak a substitute for professional help?",
|
"faq6_q": "Is ReBreak a substitute for professional help?",
|
||||||
"faq6_a": "No. ReBreak is a self-help tool. In crises: contact a professional or call a helpline."
|
"faq6_a": "No. ReBreak is a self-help tool. In crises: contact a professional or call a helpline."
|
||||||
}
|
}
|
||||||
|
|||||||
9
apps/rebreak-native/NEXT_RELEASE.md
Normal file
9
apps/rebreak-native/NEXT_RELEASE.md
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# Next Release — Notes
|
||||||
|
|
||||||
|
- Fix: the "Protection is off" sheet and the "Protection tampered" push no longer
|
||||||
|
fire on devices where protection was never activated locally (fresh installs,
|
||||||
|
new devices, simulators). The bypass state now requires a local
|
||||||
|
"was active here" flag, set after a successful activation — instead of relying
|
||||||
|
on the account-wide backend default. Real bypasses (VPN/profile removed on a
|
||||||
|
device that had protection) are still detected.
|
||||||
|
- Copy: blocklist size updated 208k → 300k across all locales (de/en/fr/ar).
|
||||||
@ -101,6 +101,27 @@ export async function getCooldownTestMode(): Promise<boolean> {
|
|||||||
return val === "1";
|
return val === "1";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ─── Per-Device "war hier schon mal aktiv"-Flag ─────────────────────────────
|
||||||
|
// `protectionShouldBeActive` (Backend) ist der DEFAULT jedes Accounts: true,
|
||||||
|
// solange kein Cooldown durchgehalten wurde. Es bedeutet NICHT "Schutz war
|
||||||
|
// jemals auf DIESEM Gerät aktiv". Ohne dieses lokale Flag würde
|
||||||
|
// `recoveringFromBypass` auf jedem frischen Gerät/Sim sofort feuern (→ Bypass-
|
||||||
|
// Push + blockierendes ProtectionOffSheet), obwohl hier nie Schutz lief. Das
|
||||||
|
// Flag wird nach erfolgreichem activateUrlFilter() gesetzt und gated den
|
||||||
|
// Bypass-Zustand in getCombinedState().
|
||||||
|
const PROTECTION_EVER_ACTIVE_KEY = "protection:everActiveHere";
|
||||||
|
|
||||||
|
async function markProtectionActivatedHere(): Promise<void> {
|
||||||
|
await AsyncStorage.setItem(PROTECTION_EVER_ACTIVE_KEY, "1").catch(() => {});
|
||||||
|
}
|
||||||
|
|
||||||
|
async function wasProtectionEverActiveHere(): Promise<boolean> {
|
||||||
|
const val = await AsyncStorage.getItem(PROTECTION_EVER_ACTIVE_KEY).catch(
|
||||||
|
() => null,
|
||||||
|
);
|
||||||
|
return val === "1";
|
||||||
|
}
|
||||||
|
|
||||||
// ─── Public API ────────────────────────────────────────────────────────────
|
// ─── Public API ────────────────────────────────────────────────────────────
|
||||||
|
|
||||||
export const protection = {
|
export const protection = {
|
||||||
@ -184,6 +205,10 @@ export const protection = {
|
|||||||
// protectionShouldBeActive=false und Bypass-Detection feuert nicht mehr).
|
// protectionShouldBeActive=false und Bypass-Detection feuert nicht mehr).
|
||||||
// Best-effort — wenn das Backend nicht erreichbar ist, lokal nicht blocken.
|
// Best-effort — wenn das Backend nicht erreichbar ist, lokal nicht blocken.
|
||||||
if (res.enabled) {
|
if (res.enabled) {
|
||||||
|
// Lokales "war hier schon mal aktiv"-Signal — gated recoveringFromBypass
|
||||||
|
// (siehe getCombinedState), damit Bypass-Push/Sheet nicht auf frischen
|
||||||
|
// Geräten feuern, wo der Schutz nie lief.
|
||||||
|
void markProtectionActivatedHere();
|
||||||
apiFetch("/api/protection/mark-active", { method: "POST" }).catch(() => {});
|
apiFetch("/api/protection/mark-active", { method: "POST" }).catch(() => {});
|
||||||
}
|
}
|
||||||
return res;
|
return res;
|
||||||
@ -546,11 +571,12 @@ export const protection = {
|
|||||||
* Phase-Berechnung folgt der State-Machine im Plan.
|
* Phase-Berechnung folgt der State-Machine im Plan.
|
||||||
*/
|
*/
|
||||||
async getCombinedState(): Promise<ProtectionState> {
|
async getCombinedState(): Promise<ProtectionState> {
|
||||||
const [rawLayers, cooldown, backend, nefilterRes] = await Promise.all([
|
const [rawLayers, cooldown, backend, nefilterRes, everActiveHere] = await Promise.all([
|
||||||
this.getDeviceState(),
|
this.getDeviceState(),
|
||||||
this.getCooldownStatus(),
|
this.getCooldownStatus(),
|
||||||
this.getBackendProtectionState(),
|
this.getBackendProtectionState(),
|
||||||
Platform.OS === "ios" ? this.isNeFilterActive() : Promise.resolve({ enabled: false }),
|
Platform.OS === "ios" ? this.isNeFilterActive() : Promise.resolve({ enabled: false }),
|
||||||
|
wasProtectionEverActiveHere(),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
// Android's native module reports {vpn, accessibility, tamperLock}; the UI
|
// Android's native module reports {vpn, accessibility, tamperLock}; the UI
|
||||||
@ -578,14 +604,20 @@ export const protection = {
|
|||||||
// (urlFilter=true) ODER via System-/MDM-Profil-NEFilter (nefilterActive=true).
|
// (urlFilter=true) ODER via System-/MDM-Profil-NEFilter (nefilterActive=true).
|
||||||
// MDM-Mode: NEFilter läuft autonom — App-Code hat urlFilter=false (kein VPN),
|
// MDM-Mode: NEFilter läuft autonom — App-Code hat urlFilter=false (kein VPN),
|
||||||
// aber nefilterActive=true. Beide gelten als aktiver Schutz.
|
// aber nefilterActive=true. Beide gelten als aktiver Schutz.
|
||||||
// "recoveringFromBypass" AUSSCHLIESSLICH wenn: Backend sagt Schutz soll aktiv
|
// "recoveringFromBypass" AUSSCHLIESSLICH wenn: der Schutz auf DIESEM Gerät
|
||||||
// sein UND weder VPN noch NEFilter laufen UND wir nicht MDM-managed sind.
|
// schon einmal lokal aktiv war (everActiveHere) UND Backend sagt Schutz soll
|
||||||
|
// aktiv sein UND weder VPN noch NEFilter laufen UND wir nicht MDM-managed
|
||||||
|
// sind. Ohne everActiveHere ist "shouldBeActive + kein Filter" nur der
|
||||||
|
// normale Erst-Setup-/Aus-Zustand (Account-Default shouldBeActive=true) →
|
||||||
|
// `inactive` (Setup-CTA), KEIN Bypass-Push/Sheet.
|
||||||
const filterActive = layers.urlFilter === true || layers.nefilterActive === true;
|
const filterActive = layers.urlFilter === true || layers.nefilterActive === true;
|
||||||
const phase: ProtectionPhase = cooldown.active
|
const phase: ProtectionPhase = cooldown.active
|
||||||
? "cooldownActive"
|
? "cooldownActive"
|
||||||
: filterActive
|
: filterActive
|
||||||
? "active"
|
? "active"
|
||||||
: backend?.protectionShouldBeActive === true && !backend?.mdmManaged
|
: everActiveHere &&
|
||||||
|
backend?.protectionShouldBeActive === true &&
|
||||||
|
!backend?.mdmManaged
|
||||||
? "recoveringFromBypass"
|
? "recoveringFromBypass"
|
||||||
: "inactive";
|
: "inactive";
|
||||||
|
|
||||||
|
|||||||
@ -169,7 +169,7 @@
|
|||||||
},
|
},
|
||||||
"blocker": {
|
"blocker": {
|
||||||
"title": "الحاجب",
|
"title": "الحاجب",
|
||||||
"subtitle": "تم حجب أكثر من 208,000 نطاق",
|
"subtitle": "تم حجب أكثر من 300,000 نطاق",
|
||||||
"status_active": "نشط",
|
"status_active": "نشط",
|
||||||
"status_inactive": "غير نشط",
|
"status_inactive": "غير نشط",
|
||||||
"filter_label": "فلتر القمار",
|
"filter_label": "فلتر القمار",
|
||||||
@ -219,7 +219,7 @@
|
|||||||
"domain_section_title": "النطاقات المخصصة",
|
"domain_section_title": "النطاقات المخصصة",
|
||||||
"domain_add_a11y": "إضافة نطاق",
|
"domain_add_a11y": "إضافة نطاق",
|
||||||
"domain_limit_title": "تم الوصول للحد",
|
"domain_limit_title": "تم الوصول للحد",
|
||||||
"domain_limit_desc": "Pro: 208 ألف+ نطاق، يُستعاد المقعد عند المشاركة — اضغط للتفاصيل",
|
"domain_limit_desc": "Pro: 300 ألف+ نطاق، يُستعاد المقعد عند المشاركة — اضغط للتفاصيل",
|
||||||
"domain_empty": "لا توجد نطاقات مخصصة بعد.\nاضغط + لإضافة نطاق.",
|
"domain_empty": "لا توجد نطاقات مخصصة بعد.\nاضغط + لإضافة نطاق.",
|
||||||
"domain_badge_voting": "تصويت",
|
"domain_badge_voting": "تصويت",
|
||||||
"domain_badge_pruefung": "مراجعة",
|
"domain_badge_pruefung": "مراجعة",
|
||||||
@ -246,8 +246,8 @@
|
|||||||
"protection_subtitle_inactive": "اضغط لتفعيل الحماية",
|
"protection_subtitle_inactive": "اضغط لتفعيل الحماية",
|
||||||
"protection_subtitle_cooldown": "التهدئة جارية — الحماية لا تزال نشطة",
|
"protection_subtitle_cooldown": "التهدئة جارية — الحماية لا تزال نشطة",
|
||||||
"protection_subtitle_free": "الفلتر نشط — %{count} نطاقات مخصصة",
|
"protection_subtitle_free": "الفلتر نشط — %{count} نطاقات مخصصة",
|
||||||
"protection_subtitle_legend": "محمي من 208,000+ نطاق + حتى 10 مخصصة",
|
"protection_subtitle_legend": "محمي من 300,000+ نطاق + حتى 10 مخصصة",
|
||||||
"protection_subtitle_pro": "محمي من 208,000+ نطاق + 5 مخصصة",
|
"protection_subtitle_pro": "محمي من 300,000+ نطاق + 5 مخصصة",
|
||||||
"protection_settings_a11y": "إعدادات الحماية",
|
"protection_settings_a11y": "إعدادات الحماية",
|
||||||
"protection_stat_domains": "النطاقات",
|
"protection_stat_domains": "النطاقات",
|
||||||
"protection_stat_method": "الطريقة",
|
"protection_stat_method": "الطريقة",
|
||||||
@ -498,7 +498,7 @@
|
|||||||
"tier_legend_total_yearly": "79,90 € / سنة",
|
"tier_legend_total_yearly": "79,90 € / سنة",
|
||||||
"tier_legend_subline_monthly": "للحماية على أجهزة متعددة",
|
"tier_legend_subline_monthly": "للحماية على أجهزة متعددة",
|
||||||
"tier_legend_subline_yearly": "شهران هدية · أجهزة متعددة",
|
"tier_legend_subline_yearly": "شهران هدية · أجهزة متعددة",
|
||||||
"feat_blocklist": "أكثر من 208000 نطاق قمار محجوب",
|
"feat_blocklist": "أكثر من 300000 نطاق قمار محجوب",
|
||||||
"feat_lyra": "Lyra غير محدود",
|
"feat_lyra": "Lyra غير محدود",
|
||||||
"feat_mail": "فلتر البريد لرسائل الكازينو",
|
"feat_mail": "فلتر البريد لرسائل الكازينو",
|
||||||
"feat_community": "المجتمع + السلاسل",
|
"feat_community": "المجتمع + السلاسل",
|
||||||
|
|||||||
@ -151,8 +151,8 @@
|
|||||||
"greeting_morning": "Guten Morgen",
|
"greeting_morning": "Guten Morgen",
|
||||||
"greeting_day": "Guten Tag",
|
"greeting_day": "Guten Tag",
|
||||||
"greeting_evening": "Guten Abend",
|
"greeting_evening": "Guten Abend",
|
||||||
"streak_days_one": "Tag clean",
|
"streak_days_one": "Tag spielfrei",
|
||||||
"streak_days_other": "Tage clean",
|
"streak_days_other": "Tage spielfrei",
|
||||||
"streak_start": "Starte deinen ersten Tag",
|
"streak_start": "Starte deinen ersten Tag",
|
||||||
"quote_of_day": "Gedanke des Tages",
|
"quote_of_day": "Gedanke des Tages",
|
||||||
"quick_access": "Schnellzugriff",
|
"quick_access": "Schnellzugriff",
|
||||||
@ -184,7 +184,7 @@
|
|||||||
},
|
},
|
||||||
"blocker": {
|
"blocker": {
|
||||||
"title": "Blocker",
|
"title": "Blocker",
|
||||||
"subtitle": "208.000+ Domains blockiert",
|
"subtitle": "300.000+ Domains blockiert",
|
||||||
"status_active": "Aktiv",
|
"status_active": "Aktiv",
|
||||||
"status_inactive": "Inaktiv",
|
"status_inactive": "Inaktiv",
|
||||||
"filter_label": "Gambling-Filter",
|
"filter_label": "Gambling-Filter",
|
||||||
@ -237,7 +237,7 @@
|
|||||||
"domain_section_title": "Eigene Domains",
|
"domain_section_title": "Eigene Domains",
|
||||||
"domain_add_a11y": "Domain hinzufügen",
|
"domain_add_a11y": "Domain hinzufügen",
|
||||||
"domain_limit_title": "Limit erreicht",
|
"domain_limit_title": "Limit erreicht",
|
||||||
"domain_limit_desc": "Pro: 208k+ Domains, Refill bei Freigabe — tippe für Details",
|
"domain_limit_desc": "Pro: 300k+ Domains, Refill bei Freigabe — tippe für Details",
|
||||||
"domain_empty": "Noch keine eigenen Domains.\nTippe + um eine hinzuzufügen.",
|
"domain_empty": "Noch keine eigenen Domains.\nTippe + um eine hinzuzufügen.",
|
||||||
"domain_badge_voting": "Voting",
|
"domain_badge_voting": "Voting",
|
||||||
"domain_badge_pruefung": "Prüfung",
|
"domain_badge_pruefung": "Prüfung",
|
||||||
@ -264,8 +264,8 @@
|
|||||||
"protection_subtitle_inactive": "Tippe um den Schutz zu aktivieren",
|
"protection_subtitle_inactive": "Tippe um den Schutz zu aktivieren",
|
||||||
"protection_subtitle_cooldown": "Cooldown läuft — Schutz weiter aktiv",
|
"protection_subtitle_cooldown": "Cooldown läuft — Schutz weiter aktiv",
|
||||||
"protection_subtitle_free": "Filter aktiv — %{count} eigene Domains",
|
"protection_subtitle_free": "Filter aktiv — %{count} eigene Domains",
|
||||||
"protection_subtitle_legend": "Geschützt vor 208.000+ Domains + bis zu 20 eigenen",
|
"protection_subtitle_legend": "Geschützt vor 300.000+ Domains + bis zu 20 eigenen",
|
||||||
"protection_subtitle_pro": "Geschützt vor 208.000+ Domains + bis zu 10 eigenen",
|
"protection_subtitle_pro": "Geschützt vor 300.000+ Domains + bis zu 10 eigenen",
|
||||||
"protection_settings_a11y": "Schutz-Einstellungen",
|
"protection_settings_a11y": "Schutz-Einstellungen",
|
||||||
"protection_stat_domains": "Domains",
|
"protection_stat_domains": "Domains",
|
||||||
"protection_stat_method": "Methode",
|
"protection_stat_method": "Methode",
|
||||||
@ -469,7 +469,7 @@
|
|||||||
"setup_step2_subtitle_pending": "Sichert den App-Lock gegen Deinstallation ab",
|
"setup_step2_subtitle_pending": "Sichert den App-Lock gegen Deinstallation ab",
|
||||||
"setup_step2_subtitle_done": "Bildschirmzeit ist gesperrt",
|
"setup_step2_subtitle_done": "Bildschirmzeit ist gesperrt",
|
||||||
"setup_step3_title": "URL-Filter aktivieren",
|
"setup_step3_title": "URL-Filter aktivieren",
|
||||||
"setup_step3_subtitle_pending": "Blockt 208.000+ Gambling-Seiten system-weit",
|
"setup_step3_subtitle_pending": "Blockt 300.000+ Gambling-Seiten system-weit",
|
||||||
"setup_step3_subtitle_done": "Filter läuft, du bist geschützt",
|
"setup_step3_subtitle_done": "Filter läuft, du bist geschützt",
|
||||||
"setup_step3_cta": "URL-Filter aktivieren",
|
"setup_step3_cta": "URL-Filter aktivieren",
|
||||||
"setup_step3_warning": "Sobald aktiv kannst du den Schutz nur über einen 24-Stunden-Cooldown abschalten. Das ist gewollt.",
|
"setup_step3_warning": "Sobald aktiv kannst du den Schutz nur über einen 24-Stunden-Cooldown abschalten. Das ist gewollt.",
|
||||||
@ -477,7 +477,7 @@
|
|||||||
"setup_complete_subtitle": "Alle drei Schutz-Ebenen sind eingerichtet.",
|
"setup_complete_subtitle": "Alle drei Schutz-Ebenen sind eingerichtet.",
|
||||||
"setup_step_locked_hint": "Erst Schritt %{step} abschließen",
|
"setup_step_locked_hint": "Erst Schritt %{step} abschließen",
|
||||||
"android_step1_title": "VPN aktivieren",
|
"android_step1_title": "VPN aktivieren",
|
||||||
"android_step1_subtitle_pending": "Blockt 208.000+ Gambling-Seiten system-weit via DNS-Filter",
|
"android_step1_subtitle_pending": "Blockt 300.000+ Gambling-Seiten system-weit via DNS-Filter",
|
||||||
"android_step1_subtitle_done": "VPN-Filter läuft",
|
"android_step1_subtitle_done": "VPN-Filter läuft",
|
||||||
"android_step1_cta": "VPN aktivieren",
|
"android_step1_cta": "VPN aktivieren",
|
||||||
"android_step2_title": "ReBreak - Schutz",
|
"android_step2_title": "ReBreak - Schutz",
|
||||||
@ -599,7 +599,7 @@
|
|||||||
"tier_legend_total_yearly": "79,90 € / Jahr",
|
"tier_legend_total_yearly": "79,90 € / Jahr",
|
||||||
"tier_legend_subline_monthly": "Für Multi-Device-Schutz",
|
"tier_legend_subline_monthly": "Für Multi-Device-Schutz",
|
||||||
"tier_legend_subline_yearly": "2 Monate geschenkt · Multi-Device",
|
"tier_legend_subline_yearly": "2 Monate geschenkt · Multi-Device",
|
||||||
"feat_blocklist": "208 000+ Glücksspiel-Domains blockiert",
|
"feat_blocklist": "300 000+ Glücksspiel-Domains blockiert",
|
||||||
"feat_lyra": "Lyra-Coach unbegrenzt",
|
"feat_lyra": "Lyra-Coach unbegrenzt",
|
||||||
"feat_mail": "Mail-Filter für Casino-Spam",
|
"feat_mail": "Mail-Filter für Casino-Spam",
|
||||||
"feat_community": "Community + Streaks",
|
"feat_community": "Community + Streaks",
|
||||||
@ -1241,7 +1241,7 @@
|
|||||||
"streak": {
|
"streak": {
|
||||||
"label_one": "Tag",
|
"label_one": "Tag",
|
||||||
"label_other": "Tage",
|
"label_other": "Tage",
|
||||||
"label_suffix": "clean"
|
"label_suffix": "spielfrei"
|
||||||
},
|
},
|
||||||
"profile": {
|
"profile": {
|
||||||
"edit_title": "Profil bearbeiten",
|
"edit_title": "Profil bearbeiten",
|
||||||
@ -1506,7 +1506,7 @@
|
|||||||
"help": {
|
"help": {
|
||||||
"faq_title": "FAQ",
|
"faq_title": "FAQ",
|
||||||
"faq_q1": "Was ist Rebreak?",
|
"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_a1": "Rebreak ist eine deutsche App, die Menschen mit problematischem Glücksspielverhalten dabei unterstützt, spielfrei 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_q2": "Wie funktioniert der Blocker?",
|
||||||
"faq_a2": "Der Blocker arbeitet mit zwei Schutzschichten. Layer 1 ist ein geräteweiter URL-Filter, der rund 330.000 Glücksspiel-Domains direkt auf deinem iPhone blockiert — kein Traffic verlässt dein Gerät. Layer 2 ist ein Zweitschutz mit einer kuratierten Liste der Top-Glücksspielseiten deines Landes sowie deinen eigenen Custom-Domains. Den Schutz deaktivieren erfordert einen 24-Stunden-Cooldown.",
|
"faq_a2": "Der Blocker arbeitet mit zwei Schutzschichten. Layer 1 ist ein geräteweiter URL-Filter, der rund 330.000 Glücksspiel-Domains direkt auf deinem iPhone blockiert — kein Traffic verlässt dein Gerät. Layer 2 ist ein Zweitschutz mit einer kuratierten Liste der Top-Glücksspielseiten deines Landes sowie deinen eigenen Custom-Domains. Den Schutz deaktivieren erfordert einen 24-Stunden-Cooldown.",
|
||||||
"faq_q3": "Wie funktioniert das Mac-DNS-Profil?",
|
"faq_q3": "Wie funktioniert das Mac-DNS-Profil?",
|
||||||
@ -1603,7 +1603,7 @@
|
|||||||
"feature_sos_01": "Übrigens: Der SOS-Bereich hat jetzt Minispiele als Ablenkung — Memory, Snake, Tetris. Nicht als Spaß-Feature, sondern weil kurze kognitive Aufgaben den Drang-Loop unterbrechen."
|
"feature_sos_01": "Übrigens: Der SOS-Bereich hat jetzt Minispiele als Ablenkung — Memory, Snake, Tetris. Nicht als Spaß-Feature, sondern weil kurze kognitive Aufgaben den Drang-Loop unterbrechen."
|
||||||
},
|
},
|
||||||
"diga_milestone": {
|
"diga_milestone": {
|
||||||
"badge": "Tag %{days} Clean",
|
"badge": "Tag %{days} spielfrei",
|
||||||
"title": "%{days} Tage ohne Glücksspiel",
|
"title": "%{days} Tage ohne Glücksspiel",
|
||||||
"body": "Das ist außergewöhnlich — und du hilfst uns, ReBreak als offizielle DiGA (Digitale Gesundheitsanwendung) zuzulassen. Dafür brauchen wir anonyme demografische Daten. Freiwillig, 2 Minuten.",
|
"body": "Das ist außergewöhnlich — und du hilfst uns, ReBreak als offizielle DiGA (Digitale Gesundheitsanwendung) zuzulassen. Dafür brauchen wir anonyme demografische Daten. Freiwillig, 2 Minuten.",
|
||||||
"cta": "Daten ausfüllen",
|
"cta": "Daten ausfüllen",
|
||||||
|
|||||||
@ -151,8 +151,8 @@
|
|||||||
"greeting_morning": "Good morning",
|
"greeting_morning": "Good morning",
|
||||||
"greeting_day": "Good afternoon",
|
"greeting_day": "Good afternoon",
|
||||||
"greeting_evening": "Good evening",
|
"greeting_evening": "Good evening",
|
||||||
"streak_days_one": "day clean",
|
"streak_days_one": "day gambling-free",
|
||||||
"streak_days_other": "days clean",
|
"streak_days_other": "days gambling-free",
|
||||||
"streak_start": "Start your first day",
|
"streak_start": "Start your first day",
|
||||||
"quote_of_day": "Thought of the day",
|
"quote_of_day": "Thought of the day",
|
||||||
"quick_access": "Quick access",
|
"quick_access": "Quick access",
|
||||||
@ -184,7 +184,7 @@
|
|||||||
},
|
},
|
||||||
"blocker": {
|
"blocker": {
|
||||||
"title": "Blocker",
|
"title": "Blocker",
|
||||||
"subtitle": "208,000+ domains blocked",
|
"subtitle": "300,000+ domains blocked",
|
||||||
"status_active": "Active",
|
"status_active": "Active",
|
||||||
"status_inactive": "Inactive",
|
"status_inactive": "Inactive",
|
||||||
"filter_label": "Gambling Filter",
|
"filter_label": "Gambling Filter",
|
||||||
@ -237,7 +237,7 @@
|
|||||||
"domain_section_title": "Custom domains",
|
"domain_section_title": "Custom domains",
|
||||||
"domain_add_a11y": "Add domain",
|
"domain_add_a11y": "Add domain",
|
||||||
"domain_limit_title": "Limit reached",
|
"domain_limit_title": "Limit reached",
|
||||||
"domain_limit_desc": "Pro: 208k+ domains, refill on release — tap for details",
|
"domain_limit_desc": "Pro: 300k+ domains, refill on release — tap for details",
|
||||||
"domain_empty": "No custom domains yet.\nTap + to add one.",
|
"domain_empty": "No custom domains yet.\nTap + to add one.",
|
||||||
"domain_badge_voting": "Voting",
|
"domain_badge_voting": "Voting",
|
||||||
"domain_badge_pruefung": "Review",
|
"domain_badge_pruefung": "Review",
|
||||||
@ -264,8 +264,8 @@
|
|||||||
"protection_subtitle_inactive": "Tap to activate protection",
|
"protection_subtitle_inactive": "Tap to activate protection",
|
||||||
"protection_subtitle_cooldown": "Cooldown running — protection still active",
|
"protection_subtitle_cooldown": "Cooldown running — protection still active",
|
||||||
"protection_subtitle_free": "Filter active — %{count} custom domains",
|
"protection_subtitle_free": "Filter active — %{count} custom domains",
|
||||||
"protection_subtitle_legend": "Protected against 208,000+ domains + up to 10 custom",
|
"protection_subtitle_legend": "Protected against 300,000+ domains + up to 10 custom",
|
||||||
"protection_subtitle_pro": "Protected against 208,000+ domains + 5 custom",
|
"protection_subtitle_pro": "Protected against 300,000+ domains + 5 custom",
|
||||||
"protection_settings_a11y": "Protection settings",
|
"protection_settings_a11y": "Protection settings",
|
||||||
"protection_stat_domains": "Domains",
|
"protection_stat_domains": "Domains",
|
||||||
"protection_stat_method": "Method",
|
"protection_stat_method": "Method",
|
||||||
@ -469,7 +469,7 @@
|
|||||||
"setup_step2_subtitle_pending": "Prevents uninstall by locking Screen Time",
|
"setup_step2_subtitle_pending": "Prevents uninstall by locking Screen Time",
|
||||||
"setup_step2_subtitle_done": "Screen Time is locked",
|
"setup_step2_subtitle_done": "Screen Time is locked",
|
||||||
"setup_step3_title": "Activate URL filter",
|
"setup_step3_title": "Activate URL filter",
|
||||||
"setup_step3_subtitle_pending": "Blocks 208,000+ gambling sites system-wide",
|
"setup_step3_subtitle_pending": "Blocks 300,000+ gambling sites system-wide",
|
||||||
"setup_step3_subtitle_done": "Filter running, you are protected",
|
"setup_step3_subtitle_done": "Filter running, you are protected",
|
||||||
"setup_step3_cta": "Activate URL filter",
|
"setup_step3_cta": "Activate URL filter",
|
||||||
"setup_step3_warning": "Once active, you can only disable protection through a 24-hour cooldown. That's by design.",
|
"setup_step3_warning": "Once active, you can only disable protection through a 24-hour cooldown. That's by design.",
|
||||||
@ -477,7 +477,7 @@
|
|||||||
"setup_complete_subtitle": "All three protection layers are set up.",
|
"setup_complete_subtitle": "All three protection layers are set up.",
|
||||||
"setup_step_locked_hint": "Complete step %{step} first",
|
"setup_step_locked_hint": "Complete step %{step} first",
|
||||||
"android_step1_title": "Activate VPN",
|
"android_step1_title": "Activate VPN",
|
||||||
"android_step1_subtitle_pending": "Blocks 208,000+ gambling sites system-wide via DNS filter",
|
"android_step1_subtitle_pending": "Blocks 300,000+ gambling sites system-wide via DNS filter",
|
||||||
"android_step1_subtitle_done": "VPN filter running",
|
"android_step1_subtitle_done": "VPN filter running",
|
||||||
"android_step1_cta": "Activate VPN",
|
"android_step1_cta": "Activate VPN",
|
||||||
"android_step2_title": "ReBreak Protection",
|
"android_step2_title": "ReBreak Protection",
|
||||||
@ -599,7 +599,7 @@
|
|||||||
"tier_legend_total_yearly": "€79.90 / year",
|
"tier_legend_total_yearly": "€79.90 / year",
|
||||||
"tier_legend_subline_monthly": "For multi-device protection",
|
"tier_legend_subline_monthly": "For multi-device protection",
|
||||||
"tier_legend_subline_yearly": "2 months gift · multi-device",
|
"tier_legend_subline_yearly": "2 months gift · multi-device",
|
||||||
"feat_blocklist": "208,000+ gambling domains blocked",
|
"feat_blocklist": "300,000+ gambling domains blocked",
|
||||||
"feat_lyra": "Lyra coach unlimited",
|
"feat_lyra": "Lyra coach unlimited",
|
||||||
"feat_mail": "Mail filter for casino spam",
|
"feat_mail": "Mail filter for casino spam",
|
||||||
"feat_community": "Community + streaks",
|
"feat_community": "Community + streaks",
|
||||||
@ -1241,7 +1241,7 @@
|
|||||||
"streak": {
|
"streak": {
|
||||||
"label_one": "day",
|
"label_one": "day",
|
||||||
"label_other": "days",
|
"label_other": "days",
|
||||||
"label_suffix": "clean"
|
"label_suffix": "gambling-free"
|
||||||
},
|
},
|
||||||
"profile": {
|
"profile": {
|
||||||
"edit_title": "Edit profile",
|
"edit_title": "Edit profile",
|
||||||
@ -1506,7 +1506,7 @@
|
|||||||
"help": {
|
"help": {
|
||||||
"faq_title": "FAQ",
|
"faq_title": "FAQ",
|
||||||
"faq_q1": "What is Rebreak?",
|
"faq_q1": "What is Rebreak?",
|
||||||
"faq_a1": "Rebreak is a German app that helps people with problematic gambling behaviour stay clean. It combines a technical blocking mechanism with an AI coach (Lyra), community support and email protection — fully GDPR-compliant on German servers.",
|
"faq_a1": "Rebreak is a German app that helps people with problematic gambling behaviour stay gambling-free. It combines a technical blocking mechanism with an AI coach (Lyra), community support and email protection — fully GDPR-compliant on German servers.",
|
||||||
"faq_q2": "How does the blocker work?",
|
"faq_q2": "How does the blocker work?",
|
||||||
"faq_a2": "The blocker uses two protection layers. Layer 1 is a device-wide URL filter that blocks around 330,000 gambling domains directly on your iPhone — no traffic leaves your device. Layer 2 is a second line of defence with a curated list of the top gambling sites in your country plus your own custom domains. Disabling protection requires a 24-hour cooldown.",
|
"faq_a2": "The blocker uses two protection layers. Layer 1 is a device-wide URL filter that blocks around 330,000 gambling domains directly on your iPhone — no traffic leaves your device. Layer 2 is a second line of defence with a curated list of the top gambling sites in your country plus your own custom domains. Disabling protection requires a 24-hour cooldown.",
|
||||||
"faq_q3": "How does the Mac DNS profile work?",
|
"faq_q3": "How does the Mac DNS profile work?",
|
||||||
@ -1586,7 +1586,7 @@
|
|||||||
"days_ago": "%{days} d ago"
|
"days_ago": "%{days} d ago"
|
||||||
},
|
},
|
||||||
"diga_milestone": {
|
"diga_milestone": {
|
||||||
"badge": "Day %{days} Clean",
|
"badge": "Day %{days} gambling-free",
|
||||||
"title": "%{days} days without gambling",
|
"title": "%{days} days without gambling",
|
||||||
"body": "That's extraordinary — and you help us get ReBreak officially certified as a DiGA (Digital Health Application). We need anonymous demographic data for that. Voluntary, 2 minutes.",
|
"body": "That's extraordinary — and you help us get ReBreak officially certified as a DiGA (Digital Health Application). We need anonymous demographic data for that. Voluntary, 2 minutes.",
|
||||||
"cta": "Fill in data",
|
"cta": "Fill in data",
|
||||||
|
|||||||
@ -169,7 +169,7 @@
|
|||||||
},
|
},
|
||||||
"blocker": {
|
"blocker": {
|
||||||
"title": "Bloqueur",
|
"title": "Bloqueur",
|
||||||
"subtitle": "208 000+ domaines bloqués",
|
"subtitle": "300 000+ domaines bloqués",
|
||||||
"status_active": "Actif",
|
"status_active": "Actif",
|
||||||
"status_inactive": "Inactif",
|
"status_inactive": "Inactif",
|
||||||
"filter_label": "Filtre jeux d'argent",
|
"filter_label": "Filtre jeux d'argent",
|
||||||
@ -219,7 +219,7 @@
|
|||||||
"domain_section_title": "Domaines personnalisés",
|
"domain_section_title": "Domaines personnalisés",
|
||||||
"domain_add_a11y": "Ajouter un domaine",
|
"domain_add_a11y": "Ajouter un domaine",
|
||||||
"domain_limit_title": "Limite atteinte",
|
"domain_limit_title": "Limite atteinte",
|
||||||
"domain_limit_desc": "Pro : 208k+ domaines, rechargement à la libération — appuyez pour les détails",
|
"domain_limit_desc": "Pro : 300k+ domaines, rechargement à la libération — appuyez pour les détails",
|
||||||
"domain_empty": "Aucun domaine personnalisé.\nAppuyez sur + pour en ajouter un.",
|
"domain_empty": "Aucun domaine personnalisé.\nAppuyez sur + pour en ajouter un.",
|
||||||
"domain_badge_voting": "Vote",
|
"domain_badge_voting": "Vote",
|
||||||
"domain_badge_pruefung": "Vérification",
|
"domain_badge_pruefung": "Vérification",
|
||||||
@ -246,8 +246,8 @@
|
|||||||
"protection_subtitle_inactive": "Appuyez pour activer la protection",
|
"protection_subtitle_inactive": "Appuyez pour activer la protection",
|
||||||
"protection_subtitle_cooldown": "Pause de sécurité en cours — protection toujours active",
|
"protection_subtitle_cooldown": "Pause de sécurité en cours — protection toujours active",
|
||||||
"protection_subtitle_free": "Filtre actif — %{count} domaines personnalisés",
|
"protection_subtitle_free": "Filtre actif — %{count} domaines personnalisés",
|
||||||
"protection_subtitle_legend": "Protégé contre 208 000+ domaines + jusqu'à 10 personnalisés",
|
"protection_subtitle_legend": "Protégé contre 300 000+ domaines + jusqu'à 10 personnalisés",
|
||||||
"protection_subtitle_pro": "Protégé contre 208 000+ domaines + 5 personnalisés",
|
"protection_subtitle_pro": "Protégé contre 300 000+ domaines + 5 personnalisés",
|
||||||
"protection_settings_a11y": "Paramètres de protection",
|
"protection_settings_a11y": "Paramètres de protection",
|
||||||
"protection_stat_domains": "Domaines",
|
"protection_stat_domains": "Domaines",
|
||||||
"protection_stat_method": "Méthode",
|
"protection_stat_method": "Méthode",
|
||||||
@ -496,7 +496,7 @@
|
|||||||
"tier_legend_total_yearly": "79,90 € / an",
|
"tier_legend_total_yearly": "79,90 € / an",
|
||||||
"tier_legend_subline_monthly": "Pour protection multi-appareils",
|
"tier_legend_subline_monthly": "Pour protection multi-appareils",
|
||||||
"tier_legend_subline_yearly": "2 mois offerts · multi-appareils",
|
"tier_legend_subline_yearly": "2 mois offerts · multi-appareils",
|
||||||
"feat_blocklist": "208 000+ domaines de jeu bloqués",
|
"feat_blocklist": "300 000+ domaines de jeu bloqués",
|
||||||
"feat_lyra": "Coach Lyra illimité",
|
"feat_lyra": "Coach Lyra illimité",
|
||||||
"feat_mail": "Filtre mail anti-spam casino",
|
"feat_mail": "Filtre mail anti-spam casino",
|
||||||
"feat_community": "Communauté + séries",
|
"feat_community": "Communauté + séries",
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user