From 8e895f522672d7d8d8d234a85c4f96cedc6f0646 Mon Sep 17 00:00:00 2001 From: Lars Gebhardt-Kusche Date: Thu, 27 Nov 2025 23:41:44 +0100 Subject: [PATCH] lang --- public/assets/i18n/de.json | 337 ----------------------------- public/assets/i18n/de.json.copy | 345 ++++++++++++++++++++++++++++++ public/landingpage/tools/i18n.php | 14 +- tools/i18n_collect_keys.php | 38 +++- 4 files changed, 380 insertions(+), 354 deletions(-) create mode 100644 public/assets/i18n/de.json.copy 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; }