diff --git a/public/assets/i18n/de.json b/public/assets/i18n/de.json
index c2d3157..2a9f11e 100644
--- a/public/assets/i18n/de.json
+++ b/public/assets/i18n/de.json
@@ -4,342 +4,5 @@
"label": "Deutsch",
"flag": "🇩🇪",
"enabled": true
- },
- "header": {
- "header_slogan": "USB-Sticks testen",
- "btn_login": "Login",
- "nav_how": "Wie es funktioniert",
- "nav_problem": "Warum es wichtig ist",
- "nav_features": "Funktionen",
- "nav_security": "Sicherheit",
- "nav_faq": "FAQ"
- },
- "brand": {
- "brand_wordmark": "{{primary_domain}}",
- "brand_subtitle": "USB-Sticks auf Fakes testen"
- },
- "footer": {
- "footer_imprint": "Impressum",
- "footer_privacy": "Datenschutz",
- "footer_copy": "© {year} {{primary_domain}}. Alle Rechte vorbehalten."
- },
- "fake_ui": {
- "error_fsapi_not_supported": "Die File System Access API wird von diesem Browser nicht unterstĂĽtzt.",
- "error_no_directory_selected": "Kein Verzeichnis ausgewählt.",
- "error_no_space_detected": "Es konnte kein freier Speicher im gewählten Verzeichnis reserviert werden.",
- "log_capacity_probe_start": "Ermittle verfügbaren Speicherplatz im gewählten Verzeichnis...",
- "log_capacity_probe_result": "Ermittelter fĂĽr Tests nutzbarer Speicher: {size} (Schreibprobe).",
- "log_quick_prepare": "Quick-Check: Vorbereitung... (Testgröße: {size})",
- "log_quick_verify_start": "Quick-Check: Schreiben abgeschlossen. Verifiziere Daten...",
- "log_quick_data_error": "Quick-Check: Datenfehler bei Byte {byte}.",
- "error_quick_data_error": "Datenfehler im Quick-Check bei Byte {byte}.",
- "log_quick_delete_warn": "Quick-Check: Konnte Testdatei nicht löschen (nicht kritisch).",
- "log_quick_success": "Quick-Check: Erfolgreich abgeschlossen.",
- "log_bench_start": "Benchmark: Start – schreibe Testdatei ({size})...",
- "log_bench_read_start": "Benchmark: Lesen & Timing...",
- "log_bench_delete_warn": "Benchmark: Konnte Testdatei nicht löschen (nicht kritisch).",
- "log_bench_success": "Benchmark: Erfolgreich abgeschlossen.",
- "log_wv_start": "Write/Verify: Start – {blocks} Blöcke à {size} (gesamt {total})...",
- "log_wv_block_start": "Write/Verify: Block {num}/{blocks} – {file}",
- "log_wv_data_error": "Write/Verify: Datenfehler in Block {num} bei Byte {byte}.",
- "error_wv_data_error": "Datenfehler in Block {num} bei Byte {byte}.",
- "log_wv_delete_warn": "Write/Verify: Konnte Blockdatei {file} nicht löschen (nicht kritisch).",
- "log_wv_success": "Write/Verify: Alle Blöcke erfolgreich verifiziert.",
- "log_all_subtest_start": "All-Inclusive: Starte Teiltest \"{mode}\" ({num}/{total})...",
- "error_unknown_mode": "Unbekannter Modus: {mode}",
- "log_fsapi_partial": "Dein Browser unterstĂĽtzt die File System Access API nicht voll. Einige Funktionen sind deaktiviert.",
- "selected_path_label": "USB-Ordner ausgewählt (Name: \"{name}\").",
- "selected_path_none": "Noch kein Verzeichnis gewählt.",
- "status_ready": "Bereit. Wähle zuerst deinen USB-Stick aus.",
- "status_mode_none": "Kein Modus selektiert",
- "status_dir_selected": "USB-Verzeichnis ausgewählt. Wähle jetzt einen Testmodus.",
- "status_mode_selected": "Modus \"{mode}\" ausgewählt. Du kannst den Test jetzt starten.",
- "status_running": "Test läuft... bitte USB-Stick nicht entfernen.",
- "status_done": "Test abgeschlossen.",
- "status_aborted": "Test wurde abgebrochen.",
- "status_error": "Fehler: {msg}",
- "status_error_unknown": "Unbekannter Fehler im Test.",
- "overall_initial": "Noch kein Test durchgefĂĽhrt.",
- "overall_running": "Test läuft...",
- "overall_done": "Browser-Test erfolgreich abgeschlossen.",
- "overall_aborted": "Test abgebrochen.",
- "overall_error": "Fehler im Browser-Test.",
- "log_dir_selected": "Verzeichnis ausgewählt: {name}",
- "log_dir_reset": "Verzeichnisauswahl zurĂĽckgesetzt.",
- "log_pick_abort": "Verzeichnisauswahl abgebrochen.",
- "log_pick_error": "Fehler bei Verzeichnisauswahl: {msg}",
- "log_pick_error_unknown": "Unbekannter Fehler bei Verzeichnisauswahl.",
- "log_mode_selected": "Modus gewählt: {mode}",
- "log_test_start": "Starte Tests im Modus: {mode}",
- "log_test_aborted": "Test wurde vom Benutzer abgebrochen.",
- "log_test_error": "Fehler im Test: {msg}",
- "log_test_error_unknown": "Unbekannter Fehler im Test.",
- "log_loaded": "USB-Browser-Test (fakecheck) geladen. Warte auf Verzeichnisauswahl und Modus.",
- "mode_quick": "Quick-Check",
- "mode_benchmark": "Benchmark",
- "mode_writeverify": "Write & Verify",
- "mode_all": "All-Inclusive (alle Browser-Tests)",
- "log_backend_save_error_status": "Backend: Konnte Ergebnis nicht speichern ({status}).",
- "log_backend_save_ok": "Backend: Testergebnis gespeichert{suffix}.",
- "log_backend_save_error": "Fehler beim Speichern im Backend: {msg}"
- },
- "serial": {
- "rating_label": "Bewertung",
- "rating": {
- "ok": {
- "label": "Plausibel",
- "desc": "Keine deutlichen Auffälligkeiten erkannt."
- },
- "needs_review": {
- "label": "ĂśberprĂĽfung empfohlen",
- "desc": "Leichte Auffälligkeiten. In Kombination mit einem technischen Test ergibt sich ein klareres Bild."
- },
- "suspicious": {
- "label": "Auffällig / Verdächtig",
- "desc": "Deutliche Auffälligkeiten erkannt. Ein Kapazitäts- oder Schreib-/Lesetest ist dringend empfohlen."
- },
- "invalid": {
- "label": "UngĂĽltig",
- "desc": "Die Seriennummer konnte nicht sinnvoll bewertet werden."
- },
- "unknown": {
- "label": "Unklar",
- "desc": "Bewertung nicht eindeutig möglich."
- }
- },
- "heading_input": "Eingabedaten",
- "heading_analysis": "Seriennummer-Analyse",
- "heading_consistency": "Hersteller-Konsistenz",
- "input": {
- "manufacturer": "Hersteller (Angabe):",
- "vidpid": "VID/PID:",
- "vendor_detected": "Vendor aus VID:"
- },
- "analysis": {
- "serial": "Seriennummer:",
- "length": "Länge:",
- "category": "Kategorie:",
- "score": "Score:",
- "issues": "Auffälligkeiten:"
- },
- "chars": "Zeichen",
- "none": "keine Angabe",
- "issues_none": "Keine besonderen Auffälligkeiten.",
- "vendor_detected": "{vendor} (VID {vid})",
- "vendor_unknown": "Unbekannter Hersteller fĂĽr VID {vid}",
- "vendor_none": "Keine Vendor-ID angegeben",
- "disclaimer": "Diese Einschätzung basiert auf Heuristiken und kann keine Echtheit garantieren.",
- "error": {
- "no_serial": "Bitte gib eine Seriennummer ein.",
- "api": "Fehler bei der PrĂĽfung: {msg}",
- "unknown": "Unerwartete Antwort vom Server."
- }
- },
- "pages": {
- "landing": {
- "meta": {
- "title": "{{primary_domain}} – USB-Sticks auf Fakes testen",
- "description": "USBCheck kombiniert einen schnellen Browser-Schnelltest mit einem professionellen Pro-Modus. So erkennst du gefälschte USB-Sticks, zu kleine echte Kapazität und langsame Billig-Controller – bevor deine Dateien verschwinden."
- },
- "sections": {
- "hero": {
- "kicker": "Erkenne Fake-USB-Sticks, bevor du Daten verlierst",
- "title": "Ist mein USB-Stick ein Fake?",
- "lead": "USBCheck kombiniert einen schnellen Browser-Schnelltest mit einem professionellen Pro-Modus. So erkennst du gefälschte USB-Sticks, zu kleine echte Kapazität und langsame Billig-Controller – bevor deine Dateien verschwinden.",
- "cta_quick": "Kostenlosen Schnelltest starten",
- "cta_learn": "Mehr zu Free & Pro"
- },
- "trust": {
- "t1_title": "Keine Installation fĂĽr Schnelltest",
- "t1_text": "Browser-basierter Test direkt auf deinem Stick.",
- "t2_title": "Echte Schreib- & Lesetests",
- "t2_text": "Schreib-/Lesetests mit realen Daten – keine synthetischen Benchmarks.",
- "t3_title": "Privacy first",
- "t3_text": "Deine Testdaten bleiben lokal – Reports nur auf Wunsch."
- },
- "quick": {
- "label": "Schnelltest-Vorschau",
- "title": "USB-Stick in unter 2 Minuten testen",
- "badge_free": "Kostenlos",
- "intro": "Der Schnelltest prĂĽft eine definierte Datenmenge auf deinem Stick und misst:",
- "li1": "Schreib- und Leserate",
- "li2": "Datenintegrität (Hash-Vergleich)",
- "li3": "Verdächtige Abbrüche oder Fehler",
- "metric1_label": "Schreibleistung",
- "metric1_value": "~ 75–120 MB/s*",
- "metric2_label": "Integritätsprüfung",
- "metric2_value": "512 MB Testdaten",
- "footnote": "*Beispielwerte – deine Ergebnisse hängen von Stick, Port & System ab.",
- "cta": "Zum kostenlosen Schnelltest",
- "visual_title": "Schnelltest-Anzeige",
- "visual_text": "So sieht die Quick-Check-Vorschau aus: GrĂĽn markiert stabile Daten, Orange warnt, wenn die Schreibrate einbricht.",
- "visual_window": "Ergebnisfenster"
- },
- "how": {
- "kicker": "So funktioniert USBCheck",
- "title": "Schnelltest im Browser, Pro-Modus mit Tiefenanalyse.",
- "intro": "USBCheck wurde entwickelt, um zwei Welten zu verbinden: einen einfachen Schnelltest für alle und einen tiefgehenden Pro-Modus für Power-User, Techniker und Admins. Der Schnelltest läuft direkt im Browser, ohne Installation. Für den Pro-Modus wird ein kleines Helfer-Tool verwendet, das auf Wunsch F3- / badblocks-ähnliche Tests ausführt und damit Kapazitäts-Fakes sicher enttarnt.",
- "step1_title": "Browser-Test starten",
- "step1_text": "Du öffnest den Schnelltest unter {{primary_url}}/fakecheck/, wählst deinen USB-Stick bzw. einen Ordner darauf aus und definierst, wie viel Daten getestet werden sollen.",
- "step2_title": "Schreib-, Lese- und Integritätsprüfung",
- "step2_text": "Der Browser erstellt Testdateien, misst Schreib- und Leserate und vergleicht Hash-Werte, um Datenfehler zu erkennen – alles lokal und ohne Übertragung deiner Inhalte.",
- "step3_title": "Optional: Pro-Modus fĂĽr Vollscan",
- "step3_text": "Wer mehr wissen will, installiert das optionale Helfer-Tool. Dieses kann die gesamte Kapazität des Sticks prüfen, Fakes identifizieren und detaillierte Reports erzeugen – ideal für Refurbisher, IT-Abteilungen oder Labore.",
- "side_title": "Free vs. Pro auf einen Blick",
- "side_free": "Free Quick Check: Geschwindigkeit & Integritätstest im Browser – ideal für schnelle Einschätzungen.",
- "side_pro": "Pro-Modus: Tiefenscan, Kapazitätsvalidierung, erweiterte Berichte und API-Integration für Unternehmen.",
- "side_account": "Account & Login: Nach dem Login kannst du Tests speichern, Berichte exportieren und mehrere Geräte verwalten."
- },
- "problem": {
- "kicker": "Warum gefälschte USB-Sticks gefährlich sind",
- "title": "Gefälschte USB-Sticks kosten Geld – und im schlimmsten Fall deine Daten.",
- "p1": "Viele Billig-USB-Sticks werben mit unrealistisch hohen Kapazitäten. In Wahrheit wurde der Controller manipuliert: Der Stick meldet z. B. 256 GB, obwohl physisch nur 32 GB verbaut sind. Die Folge: Daten werden scheinbar korrekt kopiert, später aber stillschweigend überschrieben oder beschädigt.",
- "p2": "USBCheck hilft dir, solche Fakes zu erkennen, bevor du sie produktiv einsetzt – egal ob du einzelne Sticks privat nutzt oder größere Chargen für dein Unternehmen prüfst.",
- "card1_title": "Verlust wichtiger Dateien",
- "card1_text": "Fotos, Projektdateien, Backups – alles kann betroffen sein, wenn der Stick weniger speichert als behauptet. Defekte Sektoren bleiben oft unbemerkt, bis es zu spät ist.",
- "card2_title": "Kosten durch defekte Chargen",
- "card2_text": "Unternehmen, Reseller und Agenturen verteilen USB-Sticks oft in groĂźer StĂĽckzahl. Fakes bedeuten Reklamationen, Imageschaden und erneute Produktionskosten.",
- "card3_title": "Unsichere Performance",
- "card3_text": "Langsame Controller, instabile Firmware und schwankende Schreibraten sind typisch für Fake-Sticks. Das erhöht das Risiko von Fehlern – besonders bei großen Dateien."
- },
- "features": {
- "kicker": "Free & Pro Features",
- "title": "Starte mit dem kostenlosen Schnelltest – wechsle in den Pro-Modus, wenn du mehr brauchst.",
- "intro": "USBCheck wächst mit deinen Anforderungen: Private Nutzer brauchen oft nur eine schnelle Einschätzung. Profis möchten tiefer einsteigen, Kapazitäten verifizieren und Reports archivieren. Genau dafür ist der Pro-Modus gedacht.",
- "free_title": "Free Quick Check",
- "free_badge": "Empfohlen fĂĽr die meisten Nutzer",
- "free_text": "Ideal für alle, die schnell prüfen möchten, ob ein USB-Stick zumindest grundlegend performant und stabil arbeitet – ganz ohne Installation.",
- "free_li1": "• Browser-basierter Schnelltest direkt auf deinem Stick",
- "free_li2": "• Schreib- und Lesegeschwindigkeit mit realen Testdaten",
- "free_li3": "• Hash-basierte Integritätsprüfung einer Testmenge",
- "free_li4": "• Auswahl verschiedener Teststufen (z. B. 200 MB, 2 GB)",
- "free_li5": "• Keine Registrierung erforderlich",
- "free_cta": "Kostenlosen Schnelltest starten",
- "pro_title": "Pro Mode",
- "pro_badge": "FĂĽr Power-User & Teams",
- "pro_text": "Für alle, die volle Kontrolle brauchen: IT-Abteilungen, Techniker, Refurbisher, Labore oder Unternehmen, die regelmäßig größere Stick-Mengen testen.",
- "pro_li1": "• Tiefenscan der gesamten Kapazität (ähnlich F3 / badblocks)",
- "pro_li2": "• Erkennung von Kapazitäts-Fakes und defekten Bereichen",
- "pro_li3": "• Detaillierte, speicherbare Testberichte (JSON, PDF)",
- "pro_li4": "• Optional: API-Zugriff für automatisierte Testprozesse",
- "pro_li5": "• Multi-Device- und Multi-User-Support (über Login-Bereich)",
- "pro_note": "Der Pro-Modus erfordert ein kleines Helfer-Tool auf deinem System. Dieses arbeitet lokal und kann bei Bedarf mit deinem Account auf USBCheck verbunden werden."
- },
- "security": {
- "kicker": "Security & Privacy",
- "title": "Privacy-first-Design: Deine Testdaten gehören dir.",
- "intro": "USBCheck wurde von Anfang an so konzipiert, dass deine Daten geschĂĽtzt bleiben. Der Browser-Schnelltest arbeitet ausschlieĂźlich mit Testdateien. Deine eigenen Dokumente, Bilder oder Backups werden weder gelesen noch ĂĽbertragen. Im Pro-Modus hast du volle Kontrolle, ob und welche Reports mit deinem Account synchronisiert werden.",
- "card1_title": "Local-only Tests",
- "card1_text": "Alle Schreib- und Lesetests erfolgen lokal auf deinem USB-Stick. Der Browser greift nur auf die Testdateien zu – nicht auf deine privaten Inhalte.",
- "card2_title": "Transparente Reports",
- "card2_text": "Wenn du dich einloggst, kannst du Testberichte in deinem Account speichern, exportieren oder wieder löschen. Du entscheidest, welche Daten im System bleiben.",
- "card3_title": "Schonend fĂĽr deine Hardware",
- "card3_text": "Der Schnelltest arbeitet mit moderaten Datenmengen, um unnötigen Verschleiß zu vermeiden. Der Pro-Modus warnt deutlich, wenn ein Vollscan mit hoher Schreiblast ausgeführt wird."
- },
- "faq": {
- "kicker": "FAQ",
- "title": "Häufige Fragen zu USBCheck",
- "intro": "Hier findest du Antworten auf häufig gestellte Fragen. Der FAQ-Bereich kann jederzeit erweitert werden, wenn neue Anwendungsfälle hinzukommen oder du Feedback von Nutzern erhältst.",
- "q1": "Ist der Schnelltest wirklich komplett im Browser?",
- "a1": "Ja. Der Schnelltest läuft vollständig im Browser und nutzt moderne Browser-APIs, um Testdateien auf deinem Stick zu schreiben und wieder auszulesen. Es wird nichts ohne deine Zustimmung hochgeladen.",
- "q2": "Brauche ich ein Konto, um den Schnelltest zu benutzen?",
- "a2": "Nein. Der kostenlose Schnelltest ist ohne Registrierung nutzbar. Ein Login ist nur notwendig, wenn du Testberichte speichern, mehrere Sticks verwalten oder den Pro-Modus nutzen möchtest.",
- "q3": "Kann USBCheck jeden Fake-Stick sicher erkennen?",
- "a3": "Kein Tool kann eine 100 %-Garantie geben. Der Pro-Modus mit Vollscan ist jedoch darauf ausgelegt, typische Fälschungsmuster (Manipulation der gemeldeten Kapazität, instabile Bereiche, Fehler ab einer bestimmten Füllmenge) sehr zuverlässig zu erkennen.",
- "q4": "Wie fĂĽgt sich das Tool in mein bestehendes System ein?",
- "a4": "USBCheck ist von Anfang an für Automatisierung gedacht. Über den Pro-Modus und die geplante API kannst du Tests in bestehende Workflows integrieren – beispielsweise in Wareneingangsprüfungen oder Qualitätskontrollen."
- }
- }
- },
- "fakecheck": {
- "meta": {
- "title": "FakeCheck – Browser-Test für USB-Sticks",
- "description": "Der FakeCheck hilft dir, typische Fake-Sticks aufzuspüren: Browser-basierte Schreib-/Lesetests und Plausibilitätsprüfungen der nutzbaren Kapazität – ohne Installation."
- },
- "sections": {
- "hero": {
- "kicker": "FakeCheck – Browser-Modus",
- "title": "Ist mein USB-Stick fake?",
- "lead": "Der FakeCheck hilft dir, typische Fake-Sticks aufzuspüren: Browser-basierte Schreib-/Lesetests und Plausibilitätsprüfungen der nutzbaren Kapazität – ohne Installation.",
- "cta_start": "Browser-Test starten (Demo)",
- "cta_back_home": "Zur Ăśbersicht zurĂĽck",
- "hint": "Der FakeCheck im Browser arbeitet mit Testdateien und Lese-/Schreibmustern, die du in einem ausgewählten Ordner anlegst. Deine echten Dateien bleiben unangetastet."
- },
- "capabilities": {
- "title": "Was der Browser-Test leisten kann",
- "point1_title": "Schreib-/Lesetest mit Testdateien",
- "point1_text": "Der Browser legt Testdateien im gewählten Ordner an, misst Schreib- und Leseraten und prüft, ob gelesene Daten mit den geschriebenen Mustern übereinstimmen.",
- "point2_title": "Plausibilitätscheck der Kapazität",
- "point2_text": "Aus der Menge der erfolgreich geschriebenen und verifizierten Daten ergibt sich ein realistischer Eindruck, wie viel Nutzkapazität tatsächlich stabil ankommt.",
- "point3_title": "JSON-Report fĂĽr deine Dokumentation",
- "point3_text": "Alle Ergebnisse werden in einem strukturierten JSON-Report gesammelt, den du speichern, hochladen oder für spätere Vergleiche nutzen kannst."
- },
- "app": {
- "title": "Browser-Testoberfläche (Preview)",
- "intro": "Hier entsteht die eigentliche FakeCheck-Web-App: Auswahl des Testordners, Konfiguration der Testmenge, Fortschrittsanzeige und ErgebnisĂĽbersicht. Aktuell zeigt der Button oben nur eine Demo-Ausgabe.",
- "point1": "Quick-Test mit kleiner Datenmenge.",
- "point2": "Light-Benchmark: Schreib-/Lesegeschwindigkeit ĂĽber begrenzte Zeit.",
- "point3": "Write/Verify: Testdateien schreiben und direkt wieder verifizieren."
- },
- "result": {
- "title": "Demo-Ausgabe des Browser-Tests",
- "hint": "Diese Ausgabe dient nur als Vorschau. Später wird hier der echte JSON-Report aus dem Browser-Test angezeigt."
- }
- }
- },
- "login": {
- "meta": {
- "title": "Login – {{primary_domain}}",
- "description": "Melde dich bei {{primary_domain}} an, um Tests zu speichern, den Pro-Modus zu nutzen und mehrere Geräte zu verwalten."
- },
- "sections": {
- "auth": {
- "kicker": "Account & Login",
- "title": "Melde dich bei USBCheck an",
- "intro": "Mit einem Account kannst du Tests speichern, Reports exportieren und den Pro-Modus auf mehreren Geräten nutzen. Die Registrierung ist kostenlos – du kannst später jederzeit auf Pro upgraden.",
- "tab_login": "Login",
- "tab_register": "Registrieren",
- "login_title": "Login",
- "login_text": "Melde dich mit deiner E-Mail-Adresse und deinem Passwort an.",
- "login_email_label": "E-Mail-Adresse",
- "login_password_label": "Passwort",
- "login_submit": "Einloggen",
- "login_forgot": "Passwort vergessen?",
- "register_title": "Kostenlos registrieren",
- "register_text": "Erstelle einen kostenlosen Account, um Tests zu speichern, Berichte zu exportieren und den Pro-Modus später freizuschalten.",
- "register_name_label": "Name",
- "register_email_label": "E-Mail-Adresse",
- "register_password_label": "Passwort",
- "register_submit": "Account erstellen",
- "register_hint": "Durch die Registrierung akzeptierst du die Datenschutzerklärung und das Impressum von USBCheck."
- }
- }
- },
- "dashboard": {
- "meta": {
- "title": "Dashboard – {{primary_domain}}",
- "description": "Verwalte deine USB-Tests, Geräte und Pro-Modus-Einstellungen in deinem persönlichen Dashboard."
- },
- "sections": {
- "main": {
- "kicker": "Dashboard",
- "title": "Willkommen",
- "intro": "Hier kannst du deine USB-Tests verwalten, Geräte übersichtlich organisieren und später den Pro-Modus aktivieren. Dieser Bereich ist aktuell noch im Aufbau – du bekommst aber schon einen ersten Überblick.",
- "plan_label": "Aktueller Plan",
- "card_tests_title": "Letzte Tests",
- "card_tests_text": "Hier werden später deine letzten Schnelltests und Pro-Scans angezeigt – inklusive Status, Geschwindigkeit und Integritätsprüfung.",
- "card_tests_empty": "Noch keine Testdaten vorhanden. Starte einen ersten Test ĂĽber den Browser oder den Pro-Modus.",
- "card_devices_title": "Deine USB-Geräte",
- "card_devices_text": "Später kannst du hier deine getesteten Sticks verwalten: Hersteller, Modell, Seriennummer und erkannte Kapazität.",
- "card_devices_empty": "Noch keine Geräte gespeichert. Nach deinen ersten Tests kannst du USB-Sticks hier als Geräte anlegen.",
- "card_next_title": "Nächste Schritte",
- "card_next_text": "USBCheck ist noch im Aufbau. Du gehörst zu den ersten Nutzern – später findest du hier Pro-Optionen, API-Zugänge und Detail-Reports.",
- "card_next_item1": "• Browser-FakeCheck testen und Feedback geben",
- "card_next_item2": "• Pro-Modus-Features definieren (z. B. Vollscan, Reports, API)",
- "card_next_item3": "• Accounts & SSO (my-log.in) finalisieren",
- "card_next_cta": "Zum Browser-FakeCheck"
- }
- }
- }
}
}
diff --git a/public/assets/i18n/de.json.copy b/public/assets/i18n/de.json.copy
new file mode 100644
index 0000000..c2d3157
--- /dev/null
+++ b/public/assets/i18n/de.json.copy
@@ -0,0 +1,345 @@
+{
+ "meta": {
+ "code": "de",
+ "label": "Deutsch",
+ "flag": "🇩🇪",
+ "enabled": true
+ },
+ "header": {
+ "header_slogan": "USB-Sticks testen",
+ "btn_login": "Login",
+ "nav_how": "Wie es funktioniert",
+ "nav_problem": "Warum es wichtig ist",
+ "nav_features": "Funktionen",
+ "nav_security": "Sicherheit",
+ "nav_faq": "FAQ"
+ },
+ "brand": {
+ "brand_wordmark": "{{primary_domain}}",
+ "brand_subtitle": "USB-Sticks auf Fakes testen"
+ },
+ "footer": {
+ "footer_imprint": "Impressum",
+ "footer_privacy": "Datenschutz",
+ "footer_copy": "© {year} {{primary_domain}}. Alle Rechte vorbehalten."
+ },
+ "fake_ui": {
+ "error_fsapi_not_supported": "Die File System Access API wird von diesem Browser nicht unterstĂĽtzt.",
+ "error_no_directory_selected": "Kein Verzeichnis ausgewählt.",
+ "error_no_space_detected": "Es konnte kein freier Speicher im gewählten Verzeichnis reserviert werden.",
+ "log_capacity_probe_start": "Ermittle verfügbaren Speicherplatz im gewählten Verzeichnis...",
+ "log_capacity_probe_result": "Ermittelter fĂĽr Tests nutzbarer Speicher: {size} (Schreibprobe).",
+ "log_quick_prepare": "Quick-Check: Vorbereitung... (Testgröße: {size})",
+ "log_quick_verify_start": "Quick-Check: Schreiben abgeschlossen. Verifiziere Daten...",
+ "log_quick_data_error": "Quick-Check: Datenfehler bei Byte {byte}.",
+ "error_quick_data_error": "Datenfehler im Quick-Check bei Byte {byte}.",
+ "log_quick_delete_warn": "Quick-Check: Konnte Testdatei nicht löschen (nicht kritisch).",
+ "log_quick_success": "Quick-Check: Erfolgreich abgeschlossen.",
+ "log_bench_start": "Benchmark: Start – schreibe Testdatei ({size})...",
+ "log_bench_read_start": "Benchmark: Lesen & Timing...",
+ "log_bench_delete_warn": "Benchmark: Konnte Testdatei nicht löschen (nicht kritisch).",
+ "log_bench_success": "Benchmark: Erfolgreich abgeschlossen.",
+ "log_wv_start": "Write/Verify: Start – {blocks} Blöcke à {size} (gesamt {total})...",
+ "log_wv_block_start": "Write/Verify: Block {num}/{blocks} – {file}",
+ "log_wv_data_error": "Write/Verify: Datenfehler in Block {num} bei Byte {byte}.",
+ "error_wv_data_error": "Datenfehler in Block {num} bei Byte {byte}.",
+ "log_wv_delete_warn": "Write/Verify: Konnte Blockdatei {file} nicht löschen (nicht kritisch).",
+ "log_wv_success": "Write/Verify: Alle Blöcke erfolgreich verifiziert.",
+ "log_all_subtest_start": "All-Inclusive: Starte Teiltest \"{mode}\" ({num}/{total})...",
+ "error_unknown_mode": "Unbekannter Modus: {mode}",
+ "log_fsapi_partial": "Dein Browser unterstĂĽtzt die File System Access API nicht voll. Einige Funktionen sind deaktiviert.",
+ "selected_path_label": "USB-Ordner ausgewählt (Name: \"{name}\").",
+ "selected_path_none": "Noch kein Verzeichnis gewählt.",
+ "status_ready": "Bereit. Wähle zuerst deinen USB-Stick aus.",
+ "status_mode_none": "Kein Modus selektiert",
+ "status_dir_selected": "USB-Verzeichnis ausgewählt. Wähle jetzt einen Testmodus.",
+ "status_mode_selected": "Modus \"{mode}\" ausgewählt. Du kannst den Test jetzt starten.",
+ "status_running": "Test läuft... bitte USB-Stick nicht entfernen.",
+ "status_done": "Test abgeschlossen.",
+ "status_aborted": "Test wurde abgebrochen.",
+ "status_error": "Fehler: {msg}",
+ "status_error_unknown": "Unbekannter Fehler im Test.",
+ "overall_initial": "Noch kein Test durchgefĂĽhrt.",
+ "overall_running": "Test läuft...",
+ "overall_done": "Browser-Test erfolgreich abgeschlossen.",
+ "overall_aborted": "Test abgebrochen.",
+ "overall_error": "Fehler im Browser-Test.",
+ "log_dir_selected": "Verzeichnis ausgewählt: {name}",
+ "log_dir_reset": "Verzeichnisauswahl zurĂĽckgesetzt.",
+ "log_pick_abort": "Verzeichnisauswahl abgebrochen.",
+ "log_pick_error": "Fehler bei Verzeichnisauswahl: {msg}",
+ "log_pick_error_unknown": "Unbekannter Fehler bei Verzeichnisauswahl.",
+ "log_mode_selected": "Modus gewählt: {mode}",
+ "log_test_start": "Starte Tests im Modus: {mode}",
+ "log_test_aborted": "Test wurde vom Benutzer abgebrochen.",
+ "log_test_error": "Fehler im Test: {msg}",
+ "log_test_error_unknown": "Unbekannter Fehler im Test.",
+ "log_loaded": "USB-Browser-Test (fakecheck) geladen. Warte auf Verzeichnisauswahl und Modus.",
+ "mode_quick": "Quick-Check",
+ "mode_benchmark": "Benchmark",
+ "mode_writeverify": "Write & Verify",
+ "mode_all": "All-Inclusive (alle Browser-Tests)",
+ "log_backend_save_error_status": "Backend: Konnte Ergebnis nicht speichern ({status}).",
+ "log_backend_save_ok": "Backend: Testergebnis gespeichert{suffix}.",
+ "log_backend_save_error": "Fehler beim Speichern im Backend: {msg}"
+ },
+ "serial": {
+ "rating_label": "Bewertung",
+ "rating": {
+ "ok": {
+ "label": "Plausibel",
+ "desc": "Keine deutlichen Auffälligkeiten erkannt."
+ },
+ "needs_review": {
+ "label": "ĂśberprĂĽfung empfohlen",
+ "desc": "Leichte Auffälligkeiten. In Kombination mit einem technischen Test ergibt sich ein klareres Bild."
+ },
+ "suspicious": {
+ "label": "Auffällig / Verdächtig",
+ "desc": "Deutliche Auffälligkeiten erkannt. Ein Kapazitäts- oder Schreib-/Lesetest ist dringend empfohlen."
+ },
+ "invalid": {
+ "label": "UngĂĽltig",
+ "desc": "Die Seriennummer konnte nicht sinnvoll bewertet werden."
+ },
+ "unknown": {
+ "label": "Unklar",
+ "desc": "Bewertung nicht eindeutig möglich."
+ }
+ },
+ "heading_input": "Eingabedaten",
+ "heading_analysis": "Seriennummer-Analyse",
+ "heading_consistency": "Hersteller-Konsistenz",
+ "input": {
+ "manufacturer": "Hersteller (Angabe):",
+ "vidpid": "VID/PID:",
+ "vendor_detected": "Vendor aus VID:"
+ },
+ "analysis": {
+ "serial": "Seriennummer:",
+ "length": "Länge:",
+ "category": "Kategorie:",
+ "score": "Score:",
+ "issues": "Auffälligkeiten:"
+ },
+ "chars": "Zeichen",
+ "none": "keine Angabe",
+ "issues_none": "Keine besonderen Auffälligkeiten.",
+ "vendor_detected": "{vendor} (VID {vid})",
+ "vendor_unknown": "Unbekannter Hersteller fĂĽr VID {vid}",
+ "vendor_none": "Keine Vendor-ID angegeben",
+ "disclaimer": "Diese Einschätzung basiert auf Heuristiken und kann keine Echtheit garantieren.",
+ "error": {
+ "no_serial": "Bitte gib eine Seriennummer ein.",
+ "api": "Fehler bei der PrĂĽfung: {msg}",
+ "unknown": "Unerwartete Antwort vom Server."
+ }
+ },
+ "pages": {
+ "landing": {
+ "meta": {
+ "title": "{{primary_domain}} – USB-Sticks auf Fakes testen",
+ "description": "USBCheck kombiniert einen schnellen Browser-Schnelltest mit einem professionellen Pro-Modus. So erkennst du gefälschte USB-Sticks, zu kleine echte Kapazität und langsame Billig-Controller – bevor deine Dateien verschwinden."
+ },
+ "sections": {
+ "hero": {
+ "kicker": "Erkenne Fake-USB-Sticks, bevor du Daten verlierst",
+ "title": "Ist mein USB-Stick ein Fake?",
+ "lead": "USBCheck kombiniert einen schnellen Browser-Schnelltest mit einem professionellen Pro-Modus. So erkennst du gefälschte USB-Sticks, zu kleine echte Kapazität und langsame Billig-Controller – bevor deine Dateien verschwinden.",
+ "cta_quick": "Kostenlosen Schnelltest starten",
+ "cta_learn": "Mehr zu Free & Pro"
+ },
+ "trust": {
+ "t1_title": "Keine Installation fĂĽr Schnelltest",
+ "t1_text": "Browser-basierter Test direkt auf deinem Stick.",
+ "t2_title": "Echte Schreib- & Lesetests",
+ "t2_text": "Schreib-/Lesetests mit realen Daten – keine synthetischen Benchmarks.",
+ "t3_title": "Privacy first",
+ "t3_text": "Deine Testdaten bleiben lokal – Reports nur auf Wunsch."
+ },
+ "quick": {
+ "label": "Schnelltest-Vorschau",
+ "title": "USB-Stick in unter 2 Minuten testen",
+ "badge_free": "Kostenlos",
+ "intro": "Der Schnelltest prĂĽft eine definierte Datenmenge auf deinem Stick und misst:",
+ "li1": "Schreib- und Leserate",
+ "li2": "Datenintegrität (Hash-Vergleich)",
+ "li3": "Verdächtige Abbrüche oder Fehler",
+ "metric1_label": "Schreibleistung",
+ "metric1_value": "~ 75–120 MB/s*",
+ "metric2_label": "Integritätsprüfung",
+ "metric2_value": "512 MB Testdaten",
+ "footnote": "*Beispielwerte – deine Ergebnisse hängen von Stick, Port & System ab.",
+ "cta": "Zum kostenlosen Schnelltest",
+ "visual_title": "Schnelltest-Anzeige",
+ "visual_text": "So sieht die Quick-Check-Vorschau aus: GrĂĽn markiert stabile Daten, Orange warnt, wenn die Schreibrate einbricht.",
+ "visual_window": "Ergebnisfenster"
+ },
+ "how": {
+ "kicker": "So funktioniert USBCheck",
+ "title": "Schnelltest im Browser, Pro-Modus mit Tiefenanalyse.",
+ "intro": "USBCheck wurde entwickelt, um zwei Welten zu verbinden: einen einfachen Schnelltest für alle und einen tiefgehenden Pro-Modus für Power-User, Techniker und Admins. Der Schnelltest läuft direkt im Browser, ohne Installation. Für den Pro-Modus wird ein kleines Helfer-Tool verwendet, das auf Wunsch F3- / badblocks-ähnliche Tests ausführt und damit Kapazitäts-Fakes sicher enttarnt.",
+ "step1_title": "Browser-Test starten",
+ "step1_text": "Du öffnest den Schnelltest unter {{primary_url}}/fakecheck/, wählst deinen USB-Stick bzw. einen Ordner darauf aus und definierst, wie viel Daten getestet werden sollen.",
+ "step2_title": "Schreib-, Lese- und Integritätsprüfung",
+ "step2_text": "Der Browser erstellt Testdateien, misst Schreib- und Leserate und vergleicht Hash-Werte, um Datenfehler zu erkennen – alles lokal und ohne Übertragung deiner Inhalte.",
+ "step3_title": "Optional: Pro-Modus fĂĽr Vollscan",
+ "step3_text": "Wer mehr wissen will, installiert das optionale Helfer-Tool. Dieses kann die gesamte Kapazität des Sticks prüfen, Fakes identifizieren und detaillierte Reports erzeugen – ideal für Refurbisher, IT-Abteilungen oder Labore.",
+ "side_title": "Free vs. Pro auf einen Blick",
+ "side_free": "Free Quick Check: Geschwindigkeit & Integritätstest im Browser – ideal für schnelle Einschätzungen.",
+ "side_pro": "Pro-Modus: Tiefenscan, Kapazitätsvalidierung, erweiterte Berichte und API-Integration für Unternehmen.",
+ "side_account": "Account & Login: Nach dem Login kannst du Tests speichern, Berichte exportieren und mehrere Geräte verwalten."
+ },
+ "problem": {
+ "kicker": "Warum gefälschte USB-Sticks gefährlich sind",
+ "title": "Gefälschte USB-Sticks kosten Geld – und im schlimmsten Fall deine Daten.",
+ "p1": "Viele Billig-USB-Sticks werben mit unrealistisch hohen Kapazitäten. In Wahrheit wurde der Controller manipuliert: Der Stick meldet z. B. 256 GB, obwohl physisch nur 32 GB verbaut sind. Die Folge: Daten werden scheinbar korrekt kopiert, später aber stillschweigend überschrieben oder beschädigt.",
+ "p2": "USBCheck hilft dir, solche Fakes zu erkennen, bevor du sie produktiv einsetzt – egal ob du einzelne Sticks privat nutzt oder größere Chargen für dein Unternehmen prüfst.",
+ "card1_title": "Verlust wichtiger Dateien",
+ "card1_text": "Fotos, Projektdateien, Backups – alles kann betroffen sein, wenn der Stick weniger speichert als behauptet. Defekte Sektoren bleiben oft unbemerkt, bis es zu spät ist.",
+ "card2_title": "Kosten durch defekte Chargen",
+ "card2_text": "Unternehmen, Reseller und Agenturen verteilen USB-Sticks oft in groĂźer StĂĽckzahl. Fakes bedeuten Reklamationen, Imageschaden und erneute Produktionskosten.",
+ "card3_title": "Unsichere Performance",
+ "card3_text": "Langsame Controller, instabile Firmware und schwankende Schreibraten sind typisch für Fake-Sticks. Das erhöht das Risiko von Fehlern – besonders bei großen Dateien."
+ },
+ "features": {
+ "kicker": "Free & Pro Features",
+ "title": "Starte mit dem kostenlosen Schnelltest – wechsle in den Pro-Modus, wenn du mehr brauchst.",
+ "intro": "USBCheck wächst mit deinen Anforderungen: Private Nutzer brauchen oft nur eine schnelle Einschätzung. Profis möchten tiefer einsteigen, Kapazitäten verifizieren und Reports archivieren. Genau dafür ist der Pro-Modus gedacht.",
+ "free_title": "Free Quick Check",
+ "free_badge": "Empfohlen fĂĽr die meisten Nutzer",
+ "free_text": "Ideal für alle, die schnell prüfen möchten, ob ein USB-Stick zumindest grundlegend performant und stabil arbeitet – ganz ohne Installation.",
+ "free_li1": "• Browser-basierter Schnelltest direkt auf deinem Stick",
+ "free_li2": "• Schreib- und Lesegeschwindigkeit mit realen Testdaten",
+ "free_li3": "• Hash-basierte Integritätsprüfung einer Testmenge",
+ "free_li4": "• Auswahl verschiedener Teststufen (z. B. 200 MB, 2 GB)",
+ "free_li5": "• Keine Registrierung erforderlich",
+ "free_cta": "Kostenlosen Schnelltest starten",
+ "pro_title": "Pro Mode",
+ "pro_badge": "FĂĽr Power-User & Teams",
+ "pro_text": "Für alle, die volle Kontrolle brauchen: IT-Abteilungen, Techniker, Refurbisher, Labore oder Unternehmen, die regelmäßig größere Stick-Mengen testen.",
+ "pro_li1": "• Tiefenscan der gesamten Kapazität (ähnlich F3 / badblocks)",
+ "pro_li2": "• Erkennung von Kapazitäts-Fakes und defekten Bereichen",
+ "pro_li3": "• Detaillierte, speicherbare Testberichte (JSON, PDF)",
+ "pro_li4": "• Optional: API-Zugriff für automatisierte Testprozesse",
+ "pro_li5": "• Multi-Device- und Multi-User-Support (über Login-Bereich)",
+ "pro_note": "Der Pro-Modus erfordert ein kleines Helfer-Tool auf deinem System. Dieses arbeitet lokal und kann bei Bedarf mit deinem Account auf USBCheck verbunden werden."
+ },
+ "security": {
+ "kicker": "Security & Privacy",
+ "title": "Privacy-first-Design: Deine Testdaten gehören dir.",
+ "intro": "USBCheck wurde von Anfang an so konzipiert, dass deine Daten geschĂĽtzt bleiben. Der Browser-Schnelltest arbeitet ausschlieĂźlich mit Testdateien. Deine eigenen Dokumente, Bilder oder Backups werden weder gelesen noch ĂĽbertragen. Im Pro-Modus hast du volle Kontrolle, ob und welche Reports mit deinem Account synchronisiert werden.",
+ "card1_title": "Local-only Tests",
+ "card1_text": "Alle Schreib- und Lesetests erfolgen lokal auf deinem USB-Stick. Der Browser greift nur auf die Testdateien zu – nicht auf deine privaten Inhalte.",
+ "card2_title": "Transparente Reports",
+ "card2_text": "Wenn du dich einloggst, kannst du Testberichte in deinem Account speichern, exportieren oder wieder löschen. Du entscheidest, welche Daten im System bleiben.",
+ "card3_title": "Schonend fĂĽr deine Hardware",
+ "card3_text": "Der Schnelltest arbeitet mit moderaten Datenmengen, um unnötigen Verschleiß zu vermeiden. Der Pro-Modus warnt deutlich, wenn ein Vollscan mit hoher Schreiblast ausgeführt wird."
+ },
+ "faq": {
+ "kicker": "FAQ",
+ "title": "Häufige Fragen zu USBCheck",
+ "intro": "Hier findest du Antworten auf häufig gestellte Fragen. Der FAQ-Bereich kann jederzeit erweitert werden, wenn neue Anwendungsfälle hinzukommen oder du Feedback von Nutzern erhältst.",
+ "q1": "Ist der Schnelltest wirklich komplett im Browser?",
+ "a1": "Ja. Der Schnelltest läuft vollständig im Browser und nutzt moderne Browser-APIs, um Testdateien auf deinem Stick zu schreiben und wieder auszulesen. Es wird nichts ohne deine Zustimmung hochgeladen.",
+ "q2": "Brauche ich ein Konto, um den Schnelltest zu benutzen?",
+ "a2": "Nein. Der kostenlose Schnelltest ist ohne Registrierung nutzbar. Ein Login ist nur notwendig, wenn du Testberichte speichern, mehrere Sticks verwalten oder den Pro-Modus nutzen möchtest.",
+ "q3": "Kann USBCheck jeden Fake-Stick sicher erkennen?",
+ "a3": "Kein Tool kann eine 100 %-Garantie geben. Der Pro-Modus mit Vollscan ist jedoch darauf ausgelegt, typische Fälschungsmuster (Manipulation der gemeldeten Kapazität, instabile Bereiche, Fehler ab einer bestimmten Füllmenge) sehr zuverlässig zu erkennen.",
+ "q4": "Wie fĂĽgt sich das Tool in mein bestehendes System ein?",
+ "a4": "USBCheck ist von Anfang an für Automatisierung gedacht. Über den Pro-Modus und die geplante API kannst du Tests in bestehende Workflows integrieren – beispielsweise in Wareneingangsprüfungen oder Qualitätskontrollen."
+ }
+ }
+ },
+ "fakecheck": {
+ "meta": {
+ "title": "FakeCheck – Browser-Test für USB-Sticks",
+ "description": "Der FakeCheck hilft dir, typische Fake-Sticks aufzuspüren: Browser-basierte Schreib-/Lesetests und Plausibilitätsprüfungen der nutzbaren Kapazität – ohne Installation."
+ },
+ "sections": {
+ "hero": {
+ "kicker": "FakeCheck – Browser-Modus",
+ "title": "Ist mein USB-Stick fake?",
+ "lead": "Der FakeCheck hilft dir, typische Fake-Sticks aufzuspüren: Browser-basierte Schreib-/Lesetests und Plausibilitätsprüfungen der nutzbaren Kapazität – ohne Installation.",
+ "cta_start": "Browser-Test starten (Demo)",
+ "cta_back_home": "Zur Ăśbersicht zurĂĽck",
+ "hint": "Der FakeCheck im Browser arbeitet mit Testdateien und Lese-/Schreibmustern, die du in einem ausgewählten Ordner anlegst. Deine echten Dateien bleiben unangetastet."
+ },
+ "capabilities": {
+ "title": "Was der Browser-Test leisten kann",
+ "point1_title": "Schreib-/Lesetest mit Testdateien",
+ "point1_text": "Der Browser legt Testdateien im gewählten Ordner an, misst Schreib- und Leseraten und prüft, ob gelesene Daten mit den geschriebenen Mustern übereinstimmen.",
+ "point2_title": "Plausibilitätscheck der Kapazität",
+ "point2_text": "Aus der Menge der erfolgreich geschriebenen und verifizierten Daten ergibt sich ein realistischer Eindruck, wie viel Nutzkapazität tatsächlich stabil ankommt.",
+ "point3_title": "JSON-Report fĂĽr deine Dokumentation",
+ "point3_text": "Alle Ergebnisse werden in einem strukturierten JSON-Report gesammelt, den du speichern, hochladen oder für spätere Vergleiche nutzen kannst."
+ },
+ "app": {
+ "title": "Browser-Testoberfläche (Preview)",
+ "intro": "Hier entsteht die eigentliche FakeCheck-Web-App: Auswahl des Testordners, Konfiguration der Testmenge, Fortschrittsanzeige und ErgebnisĂĽbersicht. Aktuell zeigt der Button oben nur eine Demo-Ausgabe.",
+ "point1": "Quick-Test mit kleiner Datenmenge.",
+ "point2": "Light-Benchmark: Schreib-/Lesegeschwindigkeit ĂĽber begrenzte Zeit.",
+ "point3": "Write/Verify: Testdateien schreiben und direkt wieder verifizieren."
+ },
+ "result": {
+ "title": "Demo-Ausgabe des Browser-Tests",
+ "hint": "Diese Ausgabe dient nur als Vorschau. Später wird hier der echte JSON-Report aus dem Browser-Test angezeigt."
+ }
+ }
+ },
+ "login": {
+ "meta": {
+ "title": "Login – {{primary_domain}}",
+ "description": "Melde dich bei {{primary_domain}} an, um Tests zu speichern, den Pro-Modus zu nutzen und mehrere Geräte zu verwalten."
+ },
+ "sections": {
+ "auth": {
+ "kicker": "Account & Login",
+ "title": "Melde dich bei USBCheck an",
+ "intro": "Mit einem Account kannst du Tests speichern, Reports exportieren und den Pro-Modus auf mehreren Geräten nutzen. Die Registrierung ist kostenlos – du kannst später jederzeit auf Pro upgraden.",
+ "tab_login": "Login",
+ "tab_register": "Registrieren",
+ "login_title": "Login",
+ "login_text": "Melde dich mit deiner E-Mail-Adresse und deinem Passwort an.",
+ "login_email_label": "E-Mail-Adresse",
+ "login_password_label": "Passwort",
+ "login_submit": "Einloggen",
+ "login_forgot": "Passwort vergessen?",
+ "register_title": "Kostenlos registrieren",
+ "register_text": "Erstelle einen kostenlosen Account, um Tests zu speichern, Berichte zu exportieren und den Pro-Modus später freizuschalten.",
+ "register_name_label": "Name",
+ "register_email_label": "E-Mail-Adresse",
+ "register_password_label": "Passwort",
+ "register_submit": "Account erstellen",
+ "register_hint": "Durch die Registrierung akzeptierst du die Datenschutzerklärung und das Impressum von USBCheck."
+ }
+ }
+ },
+ "dashboard": {
+ "meta": {
+ "title": "Dashboard – {{primary_domain}}",
+ "description": "Verwalte deine USB-Tests, Geräte und Pro-Modus-Einstellungen in deinem persönlichen Dashboard."
+ },
+ "sections": {
+ "main": {
+ "kicker": "Dashboard",
+ "title": "Willkommen",
+ "intro": "Hier kannst du deine USB-Tests verwalten, Geräte übersichtlich organisieren und später den Pro-Modus aktivieren. Dieser Bereich ist aktuell noch im Aufbau – du bekommst aber schon einen ersten Überblick.",
+ "plan_label": "Aktueller Plan",
+ "card_tests_title": "Letzte Tests",
+ "card_tests_text": "Hier werden später deine letzten Schnelltests und Pro-Scans angezeigt – inklusive Status, Geschwindigkeit und Integritätsprüfung.",
+ "card_tests_empty": "Noch keine Testdaten vorhanden. Starte einen ersten Test ĂĽber den Browser oder den Pro-Modus.",
+ "card_devices_title": "Deine USB-Geräte",
+ "card_devices_text": "Später kannst du hier deine getesteten Sticks verwalten: Hersteller, Modell, Seriennummer und erkannte Kapazität.",
+ "card_devices_empty": "Noch keine Geräte gespeichert. Nach deinen ersten Tests kannst du USB-Sticks hier als Geräte anlegen.",
+ "card_next_title": "Nächste Schritte",
+ "card_next_text": "USBCheck ist noch im Aufbau. Du gehörst zu den ersten Nutzern – später findest du hier Pro-Optionen, API-Zugänge und Detail-Reports.",
+ "card_next_item1": "• Browser-FakeCheck testen und Feedback geben",
+ "card_next_item2": "• Pro-Modus-Features definieren (z. B. Vollscan, Reports, API)",
+ "card_next_item3": "• Accounts & SSO (my-log.in) finalisieren",
+ "card_next_cta": "Zum Browser-FakeCheck"
+ }
+ }
+ }
+ }
+}
diff --git a/public/landingpage/tools/i18n.php b/public/landingpage/tools/i18n.php
index 5640d02..e716fb0 100644
--- a/public/landingpage/tools/i18n.php
+++ b/public/landingpage/tools/i18n.php
@@ -1,15 +1,17 @@
/ (Projektroot)
$baseDir = $_SERVER['DOCUMENT_ROOT'];
-
-
-
// Tool-Script einbinden und ausfĂĽhren
require_once $baseDir . '/../tools/i18n_collect_keys.php';
// eof
\ No newline at end of file
diff --git a/tools/i18n_collect_keys.php b/tools/i18n_collect_keys.php
index e9db856..a920a85 100644
--- a/tools/i18n_collect_keys.php
+++ b/tools/i18n_collect_keys.php
@@ -110,7 +110,11 @@ function simpleKeyExistsRecursive(array $data, string $key): bool
return false;
}
-function addSimpleKey(array &$data, string $key, string $defaultValue = null): void
+/**
+ * FĂĽgt einen einfachen Key unter $data['auto'] hinzu,
+ * sofern er nicht irgendwo in der Struktur bereits existiert.
+ */
+function addSimpleKey(array &$data, string $key, ?string $defaultValue = null): void
{
if (simpleKeyExistsRecursive($data, $key)) {
return;
@@ -120,12 +124,13 @@ function addSimpleKey(array &$data, string $key, string $defaultValue = null): v
$data['auto'] = [];
}
- if ($defaultValue === null || $defaultValue === '') {
- $defaultValue = $key;
- }
+ // Default: ĂĽbergebener Wert oder der Key selbst
+ $value = ($defaultValue !== null && $defaultValue !== '')
+ ? $defaultValue
+ : $key;
if (!array_key_exists($key, $data['auto'])) {
- $data['auto'][$key] = $defaultValue;
+ $data['auto'][$key] = $value;
}
}
@@ -154,9 +159,8 @@ function addKeyToData(array &$data, string $key, ?string $defaultValue = null):
/**
* Extrahiert den „aktuellen Inhalt“ eines data-i18n-Elements
- * ganz grob ĂĽber Regex:
+ * grob ĂĽber Regex:
* ... data-i18n="key"> Inhalt Text<
- $inlineText = extractInlineTextForDataI18n($content, $fullOffset, strlen($fullMatch));
+ $inlineText = extractInlineTextForDataI18n(
+ $content,
+ $fullOffset,
+ strlen($fullMatch)
+ );
if (!array_key_exists($key, $keysWithDefaults)) {
$keysWithDefaults[$key] = $inlineText;
@@ -290,7 +303,7 @@ foreach ($scanDirs as $dir) {
continue;
}
- $filePath = $fileInfo->getPathname();
+ $filePath = $fileInfo->getPathname();
$keysInFile = collectKeysFromFile($filePath);
foreach ($keysInFile as $key => $defaultText) {
@@ -366,6 +379,9 @@ if (!empty($newKeys)) {
if ($isCli) {
echo $output;
} else {
- header('Content-Type: text/plain; charset=utf-8');
+ // Nur Header setzen, wenn noch keine gesendet wurden
+ if (!headers_sent()) {
+ header('Content-Type: text/plain; charset=utf-8');
+ }
echo $output;
}