"""VoxCast UI strings: German. Key/placeholder parity with en.py enforced."""

STRINGS: dict[str, str] = {
    "panel_ready": "Bereit",
    "panel_transcribing": "Transkribiere...",
    "panel_correcting": "Korrigiere...",
    "panel_enhancing": "Veredle (KI)…",
    "panel_converting": "Konvertiere...",
    "panel_error": "Fehler",
    "panel_drop_file": "Datei ablegen → Markdown",
    "panel_acc_ai_mode": "KI-Modus",
    "panel_acc_settings": "Einstellungen",
    "panel_acc_undock": "Lösen",
    "panel_acc_hide": "Ausblenden",

    "settings_title": "Einstellungen",
    "sec_interface": "OBERFLÄCHE",
    "row_ui_language": "Sprache",
    "sec_audio": "AUDIO",
    "row_microphone": "Mikrofon",
    "opt_system_default": "System-Standard",
    "row_voice_test": "Sprachtest",
    "btn_test": "Test",
    "btn_stop": "Stopp",
    "btn_play": "Abspielen",
    "sec_recognition": "ERKENNUNG",
    "row_model": "Modell",
    "model_swift": "Swift",
    "model_precise": "Precise",
    "model_ultra": "Ultra",
    "hint_model_swift": "Schnell & leicht, die richtige Wahl für Laptops und PCs ohne Grafikkarte.",
    "hint_model_precise": "Ausgewogene Genauigkeit, solide Alltagswahl, läuft auf den meisten PCs gut.",
    "hint_model_ultra": "Höchste Genauigkeit, ideal mit Grafikkarte (4 GB); ohne spürbar langsamer.",
    "compat_gpu_ok": "Läuft auf deiner Grafikkarte ({vram} GB).",
    "compat_gpu_low": "Deine Grafikkarte ({vram} GB) hat zu wenig Speicher für dieses Modell, es läuft auf dem Prozessor (langsamer).",
    "compat_cpu": "Keine kompatible Grafikkarte erkannt, dieses Modell läuft auf dem Prozessor.",
    "compat_cpu_forced": "Läuft auf dem Prozessor (in den Einstellungen festgelegt).",
    "row_language": "Sprache",
    "row_lang_auto": "Sprache automatisch erkennen",
    "hint_lang_auto": "Erkennt die Sprache bei jedem Diktat. Eine feste Sprache ist schneller und genauer.",
    "row_live_mode": "Live-Transkription",
    "hint_live_mode": "Text erscheint am Cursor, während du sprichst, statt erst nach dem Stoppen. In diesem Modus keine KI-Veredelung; der Text wird am Cursor getippt.",
    "hint_output_live": "Live-Transkription ist aktiv: Der Text wird beim Sprechen direkt am Cursor getippt, diese Ausgabe-Optionen greifen daher nicht.",
    "hint_live_cpu": "Läuft am besten mit Grafikkarte; auf dem Prozessor kann es deiner Stimme hinterherhinken.",
    "live_cpu_warning": "Der Live-Modus läuft auf dem Prozessor und kann verzögern; eine Grafikkarte wird empfohlen.",
    "sec_output": "AUSGABE",
    "row_text_output": "Textausgabe",
    "opt_clipboard": "Zwischenablage",
    "opt_type_at_cursor": "An Cursor tippen",
    "opt_both": "Beides",
    "row_insert_method": "Einfügemethode",
    "opt_paste": "Einfügen (Strg+V)",
    "opt_typing": "Tippen",
    "hint_typing": "Simuliert Tastatureingaben. Funktioniert auch in Terminals.",
    "sec_controls": "STEUERUNG",
    "row_hotkey": "Hotkey",
    "row_mode": "Modus",
    "opt_hold": "Halten",
    "opt_toggle": "Umschalten",
    "sec_performance": "LEISTUNG",
    "row_compute": "Berechnung",
    "opt_auto": "Automatisch",
    "opt_gpu": "GPU (CUDA)",
    "opt_cpu": "CPU",
    "hint_cpu_slow": "CPU-Modus ist langsamer.",
    "sec_system": "SYSTEM",
    "row_autostart": "Autostart",
    "row_startup_sound": "Startton",
    "row_recording_sound": "Aufnahmeton",
    "row_shutdown_sound": "Beende-Ton",
    "row_always_on_top": "Immer im Vordergrund",
    "row_small_panel": "Kleines Panel",
    "sec_file_conversion": "DATEI-KONVERTIERUNG",
    "row_save_mode": "Speichermodus",
    "opt_ask": "Nachfragen",
    "opt_beside_file": "Neben der Datei",
    "opt_folder": "Ordner",
    "row_folder": "Ordner",
    "btn_browse": "Durchsuchen",
    "row_timestamps": "Zeitstempel",
    "row_open_after": "Danach öffnen",
    "row_context_menu": "Kontextmenü",
    "hint_context_menu": "Fügt „In Markdown umwandeln“ zum Rechtsklick-Menü des Explorers hinzu.",
    "sec_ai": "KI-VEREDELUNG",
    "row_enable": "Aktivieren",
    "hint_ai": "Diktate mit KI veredeln (aufräumen, E-Mail, Antwort…). Aktiven Modus per Rechtsklick aufs Panel oder über den KI-Knopf wählen.",
    "row_provider": "Anbieter",
    "row_api_key": "API-Schlüssel",
    "ph_api_key": "API-Schlüssel einfügen",
    "ph_api_key_saved": "•••••••• gespeichert, tippen zum Ersetzen",
    "btn_save": "Speichern",
    "hint_key_stored": "Schlüssel sicher im Windows-Anmeldeinformations-Manager gespeichert.",
    "btn_clear": "Entfernen",
    "btn_load": "Laden",
    "btn_loading": "Lädt",
    "row_active_mode": "Aktiver Modus",
    "mode_normal": "Normal (ohne KI)",
    "mode_cleanup": "Bereinigen",
    "mode_email": "E-Mail",
    "mode_reply": "Antwort",
    "mode_todo": "Aufgabenliste",
    "mode_notes": "Notizen",
    "mode_formal": "Förmlich",
    "lbl_custom_modes": "Eigene Modi",
    "sec_license": "LIZENZ",
    "row_status": "Status",
    "lic_activated": "● Aktiviert",
    "lic_not_activated": "○ Nicht aktiviert",
    "btn_activate": "Aktivieren",
    "sec_updates": "UPDATES",
    "row_version": "Version",
    "btn_check_updates": "Nach Updates suchen",
    "btn_checking": "Prüfe",
    "btn_downloading_pct": "{pct}%  wird geladen…",
    "btn_download_install": "v{version} laden & installieren",
    "btn_reset": "Zurücksetzen",
    "reset_title": "Einstellungen zurücksetzen",
    "reset_question": "Alle Einstellungen auf Standardwerte zurücksetzen?",
    "dlg_model_dl_title": "Download erforderlich",
    "dlg_model_dl_text": "Das gewählte Modell ist noch nicht installiert. VoxCast lädt dafür etwa {size} an Sprachdaten herunter und wechselt danach. Download jetzt starten?",

    "ph_mode_name": "Modus-Name",
    "tip_remove_mode": "Modus entfernen",
    "ph_system_prompt": "System-Prompt, sagt der KI, wie sie das Transkript umformen soll.",
    "btn_add_mode": "Modus hinzufügen",
    "mode_new": "Neuer Modus",

    "menu_ai_mode": "KI-MODUS",
    "menu_ai_mode_off": "KI-MODUS  ·  AUS",
    "menu_ai_settings": "Einstellungen…",
    "menu_copy_raw": "Original-Transkript kopieren",
    "tray_raw_copied": "Das Original-Transkript wurde in die Zwischenablage kopiert.",

    "act_title": "VoxCast aktivieren",
    "act_intro": "Gib deinen Lizenzschlüssel ein, um dieses Gerät zu aktivieren. Die Aktivierung ist ein einmaliger Online-Schritt, danach läuft VoxCast vollständig offline.",
    "act_enter_key": "Bitte gib deinen Lizenzschlüssel ein.",
    "act_button": "Aktivieren",
    "act_button_busy": "Aktiviere…",
    "act_update_available": "Version {version} ist verfügbar.",
    "act_update_now": "Jetzt aktualisieren",
    "act_device": "Gerät: ",
    "act_quit": "Beenden",

    "fr_title": "VoxCast einrichten",
    "fr_pick_language": "Wähle deine Sprache für die Spracherkennung.\nDas vermeidet die langsame Auto-Erkennung bei jeder Nutzung.",
    "fr_continue": "Weiter",
    "fr_preparing": "Modelle werden vorbereitet...",
    "fr_hint_label": "Tipp:",
    "status_hw_check": "Hardware wird geprüft...",
    "fr_hw_gpu": "Grafikkarte erkannt ({vram} GB): Das Modell {model} wird eingerichtet.",
    "fr_hw_cpu": "Keine dedizierte Grafikkarte erkannt: Das Modell {model} wird eingerichtet.",
    "fr_hint_download": "Modelle werden einmal geladen und bleiben auf deinem Gerät, keine Cloud nötig.",
    "fr_hint_hotkey": "Drücke Strg+Umschalt+Leertaste zum Diktieren, nochmal drücken zum Stoppen.",
    "fr_hint_ai": "Rechtsklick aufs Panel wählt einen KI-Modus (z. B. E-Mail, Antwort).",
    "fr_hint_dragfile": "Zieh eine Datei aufs Panel, um sie in Markdown zu verwandeln.",
    "fr_hint_audio": "Leg eine Audiodatei ab (mp3, ogg, m4a…), um sie zu transkribieren.",
    "fr_hint_explorer": "Im Explorer: Rechtsklick auf eine Datei → „In Markdown umwandeln“.",
    "fr_hint_dock": "Docke das Panel an einen Bildschirmrand, es gleitet weg, bis du es brauchst.",
    "fr_hint_settings": "Modell, Sprache oder Hotkey jederzeit in den Einstellungen ändern.",

    "status_init_services": "Dienste werden initialisiert...",
    "status_loading_vad": "Sprachaktivitätserkennung wird geladen...",
    "status_loading_model": "Spracherkennungsmodell wird geladen...",
    "status_init_models": "Modelle werden initialisiert...",
    "status_loading": "Modell wird geladen...",
    "status_switching_model": "Modell wird gewechselt...",
    "status_downloading_engine": "Spracherkennungs-Engine wird heruntergeladen...",
    "status_engine_ready": "Spracherkennungs-Engine bereit",
    "status_downloading_correction": "Korrekturmodell wird heruntergeladen...",
    "status_correction_ready": "Korrekturmodell heruntergeladen",

    "menu_meeting_start": "Meeting aufnehmen",
    "menu_meeting_stop": "Meeting-Aufnahme stoppen",
    "meeting_consent_title": "Meetings aufnehmen",
    "meeting_consent_body": "VoxCast nimmt das System-Audio und dein Mikrofon auf, damit du Anrufe und Meetings transkribieren kannst.\n\nBitte stelle sicher, dass alle Teilnehmer mit der Aufnahme einverstanden sind, in vielen Ländern (auch in Deutschland) ist das Mitschneiden ohne Einwilligung strafbar.",
    "meeting_consent_accept": "Verstanden, Aufnahme starten",
    "meeting_consent_cancel": "Abbrechen",
    "status_meeting_recording": "Meeting wird aufgenommen",
    "status_meeting_transcribing": "Meeting wird transkribiert… {pct}%",
    "meeting_done_title": "Meeting transkribiert",
    "meeting_done_body": "Das Transkript wurde gespeichert, hier klicken zum Öffnen.",
    "meeting_resume_note": "Eine unfertige Meeting-Aufnahme wurde gefunden, sie wird jetzt transkribiert.",
    "menu_meeting_folder": "Meeting-Ordner öffnen",
    "meeting_source_title": "Was aufnehmen?",
    "meeting_source_system": "Gesamtes System",
    "meeting_source_empty": "Gerade spielt keine App Audio ab",
    "meeting_app_fallback": "Die App-Aufnahme konnte nicht starten, stattdessen wird das gesamte System aufgenommen.",
    "md_meeting_source": "Quelle",
    "meeting_partial_note": "Die Aufnahme endete vorzeitig, die Teilaufnahme wurde trotzdem verarbeitet.",
    "meeting_system_silent": "Vom System-Audio wurde nichts aufgenommen, prüfe dein Wiedergabegerät. Manche Headsets geben Audio so aus, dass Windows es nicht mitschneiden kann; ein anderes Standard-Ausgabegerät hilft.",
    "meeting_summary_failed": "KI-Zusammenfassung fehlgeschlagen, das Transkript wurde ohne sie gespeichert.",
    "err_meeting_folder": "Der Meeting-Ordner konnte nicht erstellt werden. Prüfe den Ordner in den Einstellungen.",
    "err_meeting_disk": "Zu wenig freier Speicherplatz, Meeting-Aufnahme gestoppt.",
    "err_meeting_maxlen": "Maximale Meeting-Länge erreicht (4 h), Aufnahme gestoppt.",
    "err_meeting_capture": "Meeting-Aufnahme fehlgeschlagen, es konnte kein Audio aufgezeichnet werden.",
    "err_meeting_transcribe": "Meeting-Transkription fehlgeschlagen. Die Audiodatei wurde behalten, du kannst es erneut versuchen.",
    "md_meeting_title": "Meeting",
    "md_meeting_date": "Datum",
    "md_meeting_duration": "Dauer",
    "md_meeting_summary": "Zusammenfassung",
    "md_meeting_transcript": "Transkript",
    "sec_remote": "Externer Server",
    "row_remote_enable": "Externen Server nutzen",
    "hint_remote": "Transkription auf einem anderen Rechner mit stärkerer GPU oder CPU ausführen. Diktat, Dateikonvertierung und Meetings werden auf dem Server verarbeitet.",
    "hint_recognition_remote": "Die Erkennung übernimmt der Remote-Server, daher ist die lokale Modellwahl unten deaktiviert. Das Modell wird auf dem Server gewählt.",
    "row_remote_url": "Serveradresse",
    "ph_remote_url": "http://192.168.1.10:8590",
    "row_remote_key": "API-Schlüssel",
    "ph_remote_key": "Server-API-Schlüssel einfügen",
    "btn_remote_test": "Verbindung testen",
    "remote_testing": "Teste...",
    "btn_remote_discover": "Server suchen",
    "remote_discovering": "Suche läuft...",
    "remote_discover_none": "Kein Server gefunden. Stelle sicher, dass der Server läuft, beide Geräte im selben Netzwerk sind und die Firewall des Servers VoxCast Server im lokalen Netzwerk zulässt.",
    "remote_enhance_available": "KI-Veredelung verfügbar",
    "remote_update_available": "Server-Update verfügbar: {version}",
    "row_tls_mode": "Zertifikat",
    "tls_verify": "Gültiges Zertifikat verlangen",
    "tls_pinned": "Diesem Server vertrauen",
    "tls_insecure": "Beliebiges Zertifikat zulassen",
    "btn_trust_cert": "Zertifikat prüfen",
    "tls_trust_title": "Diesem Server vertrauen?",
    "tls_trust_body": "Der Server hat diesen Zertifikat-Fingerabdruck vorgelegt. Bestätige, dass er zu deinem Server passt, bevor du ihm vertraust.",
    "tls_trust_confirm": "Vertrauen",
    "tls_trust_failed": "Das Zertifikat des Servers konnte nicht gelesen werden. Prüfe die Adresse und ob HTTPS aktiviert ist.",
    "tls_insecure_warning": "Die Verbindung wird nicht geprüft. Nutze das nur in einem Netzwerk, dem du vertraust.",
    "row_enhance_source": "KI-Veredelung",
    "enhance_own": "Eigener API-Schlüssel",
    "enhance_server": "Über den Server",
    "hint_enhance_server": "Der Server veredelt mit seinem eigenen KI-Schlüssel, du musst hier also keinen eingeben.",
    "lbl_server_modes": "Firmen-Modi (vom Server)",
    "managed_locked": "Von deiner Organisation verwaltet",
    "remote_http_warn": "Diese Verbindung ist nicht verschlüsselt. Nutze sie nur in einem vertrauenswürdigen lokalen Netzwerk.",
    "remote_live_hint": "Live-Untertitel laufen auf diesem Gerät; dafür muss lokal ein Modell installiert sein.",
    "remote_connected": "Verbunden: {model} auf {where}",
    "remote_on_gpu": "GPU ({vram} GB)",
    "remote_on_cpu": "CPU",
    "err_remote_unreachable": "Der externe Server ist nicht erreichbar. Prüfe die Adresse und dein Netzwerk.",
    "err_remote_auth": "Der externe Server hat den API-Schlüssel abgelehnt.",
    "err_remote_busy": "Der externe Server ist ausgelastet. Bitte versuche es gleich noch einmal.",
    "err_remote_failed": "Der externe Server konnte diese Audiodatei nicht verarbeiten.",
    "sec_meeting": "MEETING",
    "row_meeting_mic": "Mikrofon mitaufnehmen",
    "hint_meeting_mic": "Nimmt auch deine eigene Stimme auf, nicht nur die anderen Teilnehmer.",
    "row_meeting_language": "Sprache",
    "lang_meeting_auto": "Automatisch erkennen",
    "row_convert_language": "Audio-Sprache",
    "lang_convert_auto": "Automatisch erkennen",
    "err_convert_engine_loading": "Die Spracherkennung lädt noch. Bitte starte die Umwandlung gleich noch einmal.",
    "err_convert_no_speech": "In dieser Datei wurde keine Sprache erkannt. Es wurde keine Markdown-Datei erstellt.",
    "err_convert_engine_error": "Die Spracherkennung hat beim Transkribieren einen Fehler gemeldet.",
    "tray_convert_failed": "{name} konnte nicht umgewandelt werden: {error}",
    "hint_meeting_language": "Die Auto-Erkennung meistert Meetings in jeder Sprache, auch bei Wechsel mitten im Gespräch. Wähle nur dann eine Sprache, wenn die Erkennung Probleme macht.",
    "row_meeting_keep": "Audiodatei behalten",
    "hint_meeting_keep": "Speichert die Aufnahme als .wav-Datei neben dem Transkript.",
    "row_meeting_summary": "KI-Zusammenfassung",
    "hint_meeting_summary": "Stellt dem Transkript eine KI-Zusammenfassung voran (KI-Veredelung muss eingerichtet sein).",
    "hint_meeting_summary_nokey": "KI-Veredelung ist nicht eingerichtet, Zusammenfassungen werden übersprungen.",
    "row_meeting_folder": "Speicherort",
    "meeting_folder_default": "Dokumente\\VoxCast\\Meetings",
    "btn_open": "Öffnen",

    "err_audio_lib": "Audio-Bibliothek nicht verfügbar",
    "err_gpu_oom": "GPU-Speicher voll. Bitte im CPU-Modus neu starten.",
    "err_gpu_fallback": "Grafikkarte nicht verfügbar, VoxCast läuft auf dem Prozessor (langsamer).",
    "err_hotkey_init": "Hotkey-System nicht initialisiert",
    "err_mic": "Mikrofonfehler. Prüfe dein Audiogerät.",
    "err_mic_test_busy": "Es läuft bereits eine Aufnahme. Beende sie, bevor du das Mikrofon testest.",
    "err_model_switch": "Modellwechsel fehlgeschlagen. Bitte erneut versuchen.",
    "err_model_download": "Modell-Download fehlgeschlagen. Prüfe deine Internetverbindung.",
    "err_speech_start": "Spracherkennung konnte nicht gestartet werden.",
    "err_transcription": "Transkription fehlgeschlagen. Bitte erneut versuchen.",
    "err_model_missing": "Sprachmodell nicht gefunden. Bitte wähle ein Modell in den Einstellungen.",
    "tray_cpu_fallback": "Keine kompatible GPU gefunden. VoxCast läuft auf der CPU.\nDie Transkription ist langsamer als mit GPU-Beschleunigung.",
    "tray_cpu_configured": "Läuft wie in den Einstellungen konfiguriert auf der CPU.",
    "tray_cpu_detected": "Keine kompatible GPU erkannt. VoxCast läuft auf der CPU.\nFür schnellere Transkription wird eine CUDA-fähige GPU empfohlen.",
    "tray_file_not_found": "Datei nicht gefunden.",
    "tray_no_supported_files": "Keine unterstützten Dateien zum Konvertieren.",
    "tray_still_starting": "VoxCast startet noch, bitte gleich erneut versuchen.",
    "tray_no_output_folder": "Kein Zielordner gesetzt, bitte Speicherort wählen.",
    "tray_context_menu_failed": "Das Rechtsklick-Menü konnte nicht aktualisiert werden.",
    "tray_need_api_key": "Bitte zuerst einen API-Schlüssel eingeben und speichern.",
    "tray_models_load_failed": "Modelle konnten nicht geladen werden.",
    "tray_show_hide": "Anzeigen/Ausblenden",

    "lic_enter_key": "Bitte gib deinen Lizenzschlüssel ein.",
    "lic_saved_failed": "Aktiviert, aber die Lizenz konnte auf diesem PC nicht gespeichert werden.",
    "lic_success": "VoxCast ist aktiviert. Vielen Dank!",
    "lic_check_failed": "Aktivierung fehlgeschlagen. Bitte prüfe deinen Schlüssel.",
    "lic_no_server": "Aktivierungsserver nicht erreichbar. Prüfe deine Internetverbindung.",
    "lic_unexpected": "Aktivierung unerwartet fehlgeschlagen. Bitte erneut versuchen.",

    "upd_checking": "Suche nach Updates…",
    "upd_latest": "Du bist auf der neuesten Version.",
    "upd_available": "Version {version} ist verfügbar.",
    "upd_dialog_title": "Update verfügbar",
    "upd_whats_new": "Was ist neu",
    "upd_required": "Erforderlich",
    "upd_no_notes": "Allgemeine Verbesserungen und Fehlerbehebungen.",
    "upd_later": "Später",
    "upd_install_now": "Laden & installieren",
    "upd_install_note": "Das Update ersetzt deine aktuelle Version automatisch, du musst nichts weiter tun.",
    "upd_downloading": "Version {version} wird heruntergeladen…",
    "upd_failed": "Update fehlgeschlagen. Bitte erneut versuchen.",
    "upd_starting_installer": "Installer wird gestartet…",
    "upd_installer_failed": "Der Installer konnte nicht gestartet werden.",
    "upd_err_filename": "Unerwarteter Installer-Dateiname im Update-Manifest.",
    "upd_err_https": "Update-Download muss HTTPS verwenden.",
    "upd_err_response": "Der Update-Server hat eine ungültige Antwort geliefert.",
    "upd_err_no_url": "Keine Download-URL vorhanden.",
    "upd_err_no_checksum": "Dem Update-Manifest fehlt die Prüfsumme. Abgebrochen.",
    "upd_err_redirect": "Der Update-Server hat unerwartet umgeleitet.",
    "upd_err_integrity": "Die heruntergeladene Datei hat die Integritätsprüfung nicht bestanden. Abgebrochen.",
    "upd_err_check": "Update-Prüfung nicht möglich: {error}",
    "upd_err_download": "Download fehlgeschlagen: {error}",
    "upd_err_save": "Das Update konnte nicht gespeichert werden: {error}",
    "upd_err_host": "Update-Download von nicht vertrauenswürdigem Host '{host}' abgelehnt.",

    "act_first": "Bitte aktiviere VoxCast zuerst.",
    "llm_enhance_failed": "KI-Veredelung fehlgeschlagen: {error}",
    "llm_truncated": "Die KI-Antwort wurde abgeschnitten, stattdessen wurde das Original-Transkript verwendet.",
    "llm_mode_needs_key": "KI-Modus gewählt, hinterlege einen API-Key in den Einstellungen, um die Veredelung zu aktivieren.",
    "tt_recording": "Aufnahme...",
    "tray_saved": "Gespeichert: {name}",
    "tray_converted": "{n} Dateien in Markdown umgewandelt.",
    "hk_press_key": "Taste drücken...",
    "hk_acc_record": "Tasten für Hotkey drücken",
    "no_folder": "Kein Ordner ausgewählt",
    "llm_load_models_ph": "Modelle laden →",

    "llm_no_key": "Kein API-Schlüssel angegeben.",
    "llm_no_key_configured": "Kein API-Schlüssel konfiguriert.",
    "llm_bad_key": "Ungültiger oder nicht autorisierter API-Schlüssel.",
    "llm_rate_limit": "Rate-Limit erreicht. Bitte gleich erneut versuchen.",
    "llm_provider_down": "Der KI-Anbieter ist vorübergehend nicht erreichbar.",
    "llm_request_failed": "Anfrage fehlgeschlagen ({code}).",
    "llm_network": "Netzwerkfehler: {error}",
    "llm_no_model": "Kein nutzbares KI-Modell für diesen API-Schlüssel gefunden.",
}
