{
  "_display_name": "Deutsch",

  "app.tab.core": "⚙️ Core",
  "app.tab.servers": "🖥️ Server",
  "app.tab.diagnostics": "🔍 Diagnose",
  "app.tab.help": "❓ Hilfe",

  "core.status_checking": "Core-Status wird geprüft...",
  "core.status_error_not_found": "Core-Status ❌ Fehler: sing-box nicht gefunden",
  "core.status_restarting": "Core-Status 🔄 Neustart...",
  "core.status_running": "Core-Status ✅ Läuft",
  "core.status_stopped": "Core-Status ⏸️ Gestoppt",
  "core.button_start": "Starten",
  "core.button_stop": "Stoppen",
  "core.button_exit": "Beenden",
  "core.button_restart": "Neu starten",
  "core.label_config": "Config",
  "core.status_checking_config": "Config wird geprüft...",
  "core.status_config_ok": "%s ✅ %s",
  "core.status_config_not_found": "%s ❌ nicht gefunden",
  "core.status_config_error": "Config-Fehler: %v",
  "core.status_parser_starting": "Starten...",
  "core.button_update": "🔄 Aktualisieren",
  "core.button_wizard": "⚙️ Assistent",
  "core.button_download_template": "Config-Vorlage herunterladen",
  "core.label_singbox": "Sing-box",
  "core.singbox_help_msg": "sing-box ist die Core-Binärdatei.\n\n",
  "core.singbox_help_look_for": "Suchen nach: %s\n",
  "core.singbox_help_extract": "Die Binärdatei in den bin-Ordner entpacken.\n\n",
  "core.singbox_help_manual": "Du kannst sie mit dem Button oben herunterladen oder manuell von:",
  "core.singbox_status_checking": "Prüfen...",
  "core.singbox_status_not_found": "❌ nicht gefunden",
  "core.button_download": "Herunterladen",
  "core.button_download_version": "Herunterladen v%s",
  "core.button_update_version": "Aktualisieren v%s",
  "core.dialog_singbox_title": "Sing-box",
  "core.dialog_singbox_close": "Schließen",
  "core.button_open_bin": "bin-Ordner öffnen",
  "core.label_wintun": "Wintun",
  "core.wintun_help_msg": "wintun.dll wird für den TUN-Modus unter Windows benötigt.\n\n",
  "core.wintun_help_in_archive": "Im Download-Archiv findest du wintun.dll\n\nDein System ist %s.\n\n",
  "core.wintun_help_place": "Lege sie in den bin-Ordner: bin\n\n",
  "core.wintun_help_manual": "Du kannst sie mit dem Button oben herunterladen oder manuell von:",
  "core.wintun_status_checking": "Prüfen...",
  "core.wintun_status_ok": "ok",
  "core.wintun_status_not_found": "❌ nicht gefunden",
  "core.wintun_status_error": "❌ Fehler beim Prüfen von wintun.dll",
  "core.dialog_wintun_title": "Wintun",
  "core.dialog_wintun_close": "Schließen",
  "core.dialog_template_title": "Config-Vorlage",
  "core.dialog_template_saved": "Vorlage gespeichert unter %s",
  "core.dialog_download_complete_title": "Download abgeschlossen",
  "core.dialog_update_available_title": "Update verfügbar",
  "core.dialog_update_msg": "Eine neue Version der Anwendung ist verfügbar",
  "core.dialog_update_current": "Aktuelle Version: %s",
  "core.dialog_update_new": "Neue Version: %s",
  "core.dialog_update_close": "Schließen",
  "core.button_download_from_github": "Von GitHub herunterladen",
  "core.config_not_found_title": "Konfiguration nicht gefunden",
  "core.config_not_found_message": "⚠️ Konfigurationsdatei nicht gefunden!\n\nDie Datei %s fehlt im Ordner bin/.\n\nSo geht's los:\n1. Assistent herunterladen\n2. mit dem Assistenten eine Konfiguration erzeugen\n3. auf Starten klicken\n",
  "core.already_running_app_title": "Information",
  "core.already_running_app_message": "Die Anwendung läuft bereits. Nutze die vorhandene Instanz oder schließe sie, bevor du eine neue startest.",
  "core.info_title": "Info",
  "core.already_running": "Sing-Box läuft bereits (laut internem Status).",
  "core.crash_title": "Absturz",
  "core.crash_restarting": "Sing-Box ist abgestürzt, Neustart... (Versuch %d/%d)",

  "error.startup": "Start von sing-box fehlgeschlagen:\n\n%s\n\nBitte prüfen:\n1. config.json ist gültig\n2. die sing-box-Executable existiert\n3. Sieh in die Logs für Details",
  "error.parser": "Parser fehlgeschlagen:\n\n%s\n\nBitte prüfen:\n1. die Abo-URL ist gültig\n2. Netzwerkverbindung\n3. Sieh in parser.log für Details",
  "error.linux_capabilities": "Linux-Capabilities erforderlich",
  "error.restart_failed": "Sing-Box konnte nach %d Versuchen nicht neu gestartet werden. Sieh in sing-box.log für Details.",
  "error.check_updates_failed": "Update-Prüfung fehlgeschlagen",
  "error.version_check": "Fehler bei Versionsprüfung: %s",

  "core.update_available_title": "Update verfügbar",
  "core.update_available_message": "Update verfügbar!\n\nInstalliert: %s\nNeueste: %s\n\nDu kannst das Update im Core-Tab herunterladen.",
  "core.no_updates_title": "Keine Updates",
  "core.latest_version_message": "Du verwendest die neueste Version.\n\nInstalliert: %s\nNeueste: %s",

  "tray.open": "Öffnen",
  "tray.quit": "Beenden",
  "tray.start_vpn": "VPN starten",
  "tray.stop_vpn": "VPN stoppen",
  "tray.select_proxy": "Proxy auswählen",
  "tray.no_proxies_available": "Keine Proxys verfügbar",
  "tray.hide_app_from_dock": "App im Dock ausblenden",

  "help.open_config_folder": "⚙️ Config-Ordner öffnen",
  "help.kill_singbox": "🛑 Sing-Box beenden",
  "help.kill_title": "Beenden",
  "help.kill_result": "Sing-Box wurde beendet (falls es lief).",
  "help.version_label": "📦 Version: %s",
  "help.checking_updates": "Suche nach Updates...",
  "help.unable_to_check_updates": "Updates konnten nicht geprüft werden",
  "help.update_available_format": "🆕 Update verfügbar: %s\nAktuell: %s",
  "help.dev_build_format": "✅ Du verwendest eine Entwicklungs-Build\nAktuell: %s\nLetztes Release: %s",
  "help.latest_version_format": "✅ Du verwendest die neueste Version\nAktuell: %s",
  "help.telegram_link": "💬 Telegram-Kanal",
  "help.github_link": "🐙 GitHub-Repository",
  "help.language_label": "Sprache:",
  "help.language_changed": "Sprache geändert. Bitte App neu starten, um alles vollständig anzuwenden.",
  "help.download_locales": "📥 Übersetzungen herunterladen",
  "help.download_locales_btn": "⬇",
  "help.download_locales_success": "Übersetzungen heruntergeladen (%d). Neustart, um neue Sprachen zu sehen.",
  "help.download_locales_failed": "Übersetzungen konnten nicht heruntergeladen werden",
  "help.downloading_locales": "Wird heruntergeladen...",
  "help.downloading_locales_btn": "🔄",

  "diag.stun_button": "STUN [UDP]",
  "diag.stun_check_title": "STUN-Prüfung",
  "diag.stun_checking": "Prüfe, bitte warten...",
  "diag.external_ip_format": "Deine externe IP: %s\n%s",
  "diag.copy_ip": "IP kopieren",
  "diag.copied_title": "Kopiert",
  "diag.ip_copied": "IP-Adresse in die Zwischenablage kopiert.",
  "diag.stun_result_title": "Ergebnis der STUN-Prüfung",
  "diag.close": "Schließen",
  "diag.stun_server_label": "STUN-Server (host:port):",
  "diag.use_system_socks5": "Systemweiten SOCKS5-Proxy verwenden",
  "diag.stun_settings": "STUN-Einstellungen",
  "diag.save": "Speichern",
  "diag.cancel": "Abbrechen",
  "diag.open_log_window": "Log-Fenster öffnen",
  "diag.open_logs_folder": "Log-Ordner öffnen",
  "diag.ip_check_services": "IP-Prüfdienste:",

  "log.window_title": "Logs",
  "log.level_label": "Level:",
  "log.level_error": "Fehler",
  "log.level_warn": "Warnung",
  "log.level_info": "Info",
  "log.level_verbose": "Detailliert",
  "log.level_trace": "Trace",
  "log.refresh": "Aktualisieren",
  "log.internal_tab": "Intern",
  "log.core_tab": "Core",
  "log.api_tab": "API",
  "log.file_not_available": "Log-Datei nicht verfügbar.",

  "dialog.download_failed": "Download fehlgeschlagen. Sieh in die Logs für Details.",
  "dialog.download_failed_manual_hint": "Bitte lade die Datei manuell herunter und lege sie in den unten angegebenen Ordner.",
  "dialog.open_download_page": "Download-Seite öffnen",
  "dialog.open_folder": "Ordner öffnen",
  "dialog.close": "Schließen",
  "dialog.copy": "Kopieren",
  "dialog.ok": "OK",
  "dialog.kill_process": "Prozess beenden",
  "dialog.close_warning": "Diesen Hinweis schließen",
  "dialog.process_already_running": "Sing-Box scheint bereits zu laufen.\nMöchtest du den bestehenden Prozess beenden?",
  "dialog.warning": "Warnung",
  "dialog.error_prefix": "❌ ",

  "servers.status_not_checked": "Status: Nicht geprüft",
  "servers.status_click_load": "Klicke auf „Proxys laden“",
  "servers.status_loading": "Lade Proxys für „%s“...",
  "servers.status_loaded": "Proxys für „%s“ geladen. Aktiv: %s",
  "servers.status_clash_api_disabled": "Clash-API wegen Config-Fehler deaktiviert",
  "servers.status_clash_api_off_error": "❌ Clash-API Aus (Fehler)",
  "servers.status_clash_api_off_config": "❌ Clash-API Aus (Config-Fehler)",
  "servers.status_clash_api_on": "✅ Clash-API An",
  "servers.status_not_running": "Status: Läuft nicht",
  "servers.status_singbox_stopped": "Sing-box ist gestoppt.",
  "servers.error_api_not_initialized": "API-Dienst ist nicht initialisiert",
  "servers.error_api_disabled": "API ist deaktiviert: Config-Fehler",
  "servers.status_delay_error": "Latenzfehler: %s",
  "servers.status_delay_format": "Latenz: %d ms für %s",
  "servers.status_selected": "Ausgewählt: %s",
  "servers.status_selected_multi": "Ausgewählt: %d Proxies",
  "servers.status_selected_none": "Kein Proxy ausgewählt",
  "servers.status_switch_error": "Wechsel-Fehler: %s",
  "servers.status_switched": "„%s“ auf %s gewechselt",
  "servers.status_sorted_name_az": "Nach Name sortiert (A-Z)",
  "servers.status_sorted_name_za": "Nach Name sortiert (Z-A)",
  "servers.status_sorted_delay_fast": "Nach Latenz sortiert (schnellste zuerst)",
  "servers.status_sorted_delay_slow": "Nach Latenz sortiert (langsamste zuerst)",
  "servers.status_no_proxies": "Keine Proxys zum Pingen",
  "servers.status_list_counts": "Gesamt / verfügbar: %d / %d",
  "servers.status_pinging": "Pinge %d Proxys...",
  "servers.status_pinging_progress": "Pinge %d/%d...",
  "servers.status_ping_completed": "Ping-Test für %d Proxys abgeschlossen",
  "servers.status_selected_group": "Ausgewählte Gruppe „%s“. Zuletzt genutzter Proxy: %s",
  "servers.status_selected_group_only": "Ausgewählte Gruppe „%s“.",
  "servers.status_ping_url_updated": "Ping-Test-URL aktualisiert: %s",
  "servers.label_proxy_name": "Proxy-Name",
  "servers.button_ping": "Ping",
  "servers.button_test": "Test",
  "servers.tooltip_hide_ping_errors": "Server mit Ping-Fehler ausblenden",
  "servers.tooltip_show_ping_errors": "Alle Server anzeigen",
  "servers.tooltip_sort_by_name": "Nach Namen sortieren (A–Z / Z–A)",
  "servers.tooltip_sort_by_delay": "Nach Ping sortieren (schnellste zuerst / langsamste zuerst)",
  "servers.tooltip_ping_all": "Alle Proxys in dieser Gruppe pingen",
  "servers.tooltip_ping_settings": "Ping-Test-URL und parallele Anfragen",
  "servers.button_export": "Export",
  "servers.tooltip_export_uris": "Share-Links fuer alle sichtbaren Zeilen, aktuelle Listenreihenfolge (eine Zeile pro URI; ausgeblendete Ping-Fehler auslassen; ohne selector, urltest, direct).",
  "servers.tooltip_export_uris_selected": "Share-Links nur fuer ausgewaehlte Proxies (Mehrfachauswahl), Listenreihenfolge (gleiche URI-Regeln wie Standard).",
  "servers.status_export_nothing_visible": "Nichts zu exportieren (keine Zeilen in der aktuellen Ansicht).",
  "servers.status_export_nothing_selected": "Nichts zu exportieren (keine ausgewaehlten Zeilen in der Ansicht).",
  "servers.status_export_uris_building": "Export wird vorbereitet...",
  "servers.status_export_uris_done": "Zwischenablage: %d Zeilen (eine URI pro Zeile)",
  "servers.status_export_uris_none": "Keine Share-Links fuer diese Liste erstellbar.",
  "servers.error_export_no_config": "Konfigurationspfad ist nicht gesetzt.",
  "servers.label_sort_by_name": "A…Z",
  "servers.placeholder_select_group": "Selector-Gruppe auswählen",
  "servers.label_selector_group": "Selector-Gruppe:",
  "servers.dialog_ping_settings_title": "Ping-Test-Einstellungen",
  "servers.ping_label_url": "Ping-Test-URL",
  "servers.ping_label_custom_url": "Benutzerdefinierte URL:",
  "servers.ping_label_parallel": "Parallele Anfragen (alle testen):",
  "servers.ping_placeholder_url": "https://example.com/generate_204",
  "servers.ping_option_custom": "Benutzerdefiniert",
  "servers.ping_button_save": "Speichern",
  "servers.ping_button_cancel": "Abbrechen",
  "servers.dialog_selector_active_title": "Selector → Aktiver Outbound",
  "servers.dialog_selector_close": "Schließen",
  "servers.ping_button_error": "Fehler",
  "servers.ping_format_ms": "%d ms",
  "servers.selector_no_active": "%s → (kein aktiver Outbound)",
  "servers.selector_error": "%s → Fehler: %v",
  "servers.selector_active": "%s → %s",

  "wizard.window_title": "Config-Assistent",
  "wizard.tab_sources": "Quellen",
  "wizard.tab_outbounds": "Outbounds",
  "wizard.tab_rules": "Regeln",
  "wizard.tab_preview": "Vorschau",
  "wizard.button_read": "Lesen",
  "wizard.button_save_as": "Speichern unter",
  "wizard.button_close": "Schließen",
  "wizard.button_prev": "Zurück",
  "wizard.button_next": "Weiter",
  "wizard.button_save": "Speichern",
  "wizard.dialog_confirmation": "Bestätigung",
  "wizard.dialog_unsaved_changes": "Aktuelle Änderungen gehen verloren. Aktuellen Zustand speichern?",
  "wizard.dialog_save_before_close": "Änderungen vor dem Schließen speichern?",
  "wizard.dialog_discard": "Verwerfen",
  "wizard.dialog_cancel": "Abbrechen",
  "wizard.shared.button_edit": "Bearbeiten",
  "wizard.shared.button_del": "Entf",
  "wizard.error_load_config": "Vorhandene Config konnte nicht geladen werden",
  "wizard.error_save_state": "Zustand konnte nicht gespeichert werden",
  "wizard.error_load_state": "Zustand konnte nicht geladen werden",
  "wizard.error_restore_state": "Zustand konnte nicht wiederhergestellt werden",
  "wizard.error_template_failed": "Config-Vorlage konnte nicht geladen werden",
  "wizard.error_template_missing": "Config-Vorlage fehlt",

  "wizard.source.label_url": "Abo-URL oder Direktlinks:",
  "wizard.source.placeholder_url": "https://deine-abo-url-hier",
  "wizard.source.hint": "Unterstützt Abo-URLs (http/https) oder Direktlinks (vless://, vmess://, trojan://, ss://, hysteria2://, ssh://). Für mehrere Links: pro Zeile ein Link.",
  "wizard.source.button_add": "Hinzufügen",
  "wizard.source.button_get_free": "Kostenloses VPN holen!",
  "wizard.source.label_sources": "Quellen",
  "wizard.source.no_sources": "Keine Quellen in ParserConfig definiert.",
  "wizard.source.connections_n": "Verbindungen %d",
  "wizard.source.source_n": "Quelle %d",
  "wizard.source.placeholder_prefix": "Präfix",
  "wizard.source.button_view": "Anzeigen",
  "wizard.source.button_del": "Entf",
  "wizard.source.dialog_copied_title": "Kopiert",
  "wizard.source.dialog_copied_message": "Quelle in die Zwischenablage kopiert.",
  "wizard.source.preview_click_refresh": "Klicke auf Aktualisieren, um Server aus allen Quellen zu laden.",
  "wizard.source.preview_no_sources": "Keine Quellen. URLs hinzufügen und Aktualisieren klicken.",
  "wizard.source.preview_loading": "Laden...",
  "wizard.source.preview_error": "Fehler: %s",
  "wizard.source.preview_servers": "%d Server von %d Quelle(n)",
  "wizard.source.preview_errors": "  ⚠️ %d Fehler",
  "wizard.source.button_refresh": "Aktualisieren",
  "wizard.source.view_title": "Server — %s",
  "wizard.source.view_close": "Schließen",
  "wizard.source.view_no_servers": "Keine Server gefunden.",
  "wizard.source.view_server_count": "%d Server",

  "wizard.outbounds.placeholder": "ParserConfig-JSON hier einfügen...",
  "wizard.outbounds.button_docs": "📖 Dokumentation",
  "wizard.outbounds.label": "ParserConfig:",
  "wizard.outbounds.error_serialize": "ParserConfig konnte nicht serialisiert werden",
  "wizard.outbounds.error_open_docs": "Dokumentation konnte nicht geöffnet werden",
  "wizard.outbounds.error_invalid_json": "Ungültiges ParserConfig-JSON",
  "wizard.outbounds.error_invalid_config": "Ungültige ParserConfig",

  "wizard.rules.button_srs_download": "⬇ srs",
  "wizard.rules.button_srs_loading": "🔄 srs",
  "wizard.rules.button_srs_done": "✔️ srs",
  "wizard.rules.template_not_found": "Vorlagen-Datei bin/%s nicht gefunden.",
  "wizard.rules.template_create_hint": "Erstelle die Vorlagen-Datei, um diesen Tab zu aktivieren.",
  "wizard.rules.no_selectable_rules": "Keine auswählbaren Regeln in der Vorlage definiert.",
  "wizard.rules.label_outbound": "Outbound:",
  "wizard.rules.button_info": "?",
  "wizard.rules.button_edit": "✏️",
  "wizard.rules.button_delete": "Delete rule",
  "wizard.rules.dialog_delete_unnamed": "(unnamed rule)",
  "wizard.rules.dialog_delete_confirm": "Delete custom rule \"%s\"?",
  "wizard.rules.button_add_rule": "➕ Regel hinzufügen",
  "wizard.rules.label_final_outbound": "Finaler Outbound:",
  "wizard.rules.checkbox_tun": "TUN",
  "wizard.rules.tun_help": "Das Aktivieren von TUN erfordert die Eingabe deines Passworts beim Starten oder Stoppen der VPN.",
  "wizard.rules.label_selectable": "Auswählbare Regeln",
  "wizard.rules.error_srs_failed": "Download des Regelsets (SRS) fehlgeschlagen",

  "wizard.preview.placeholder": "Vorschau erscheint hier",
  "wizard.preview.status_click_show": "Klicke auf „Vorschau anzeigen“, um die Vorschau zu erzeugen (bei großen Konfigurationen kann es dauern)",
  "wizard.preview.button_show": "Vorschau anzeigen",
  "wizard.preview.label": "Vorschau",
  "wizard.preview.loading_large": "Große Vorschau wird geladen...",
  "wizard.preview.status_loading_large": "⏳ Große Vorschau wird geladen...",
  "wizard.preview.status_parsing": "⏳ Abos werden geparst und Outbounds erzeugt...",
  "wizard.preview.text_parsing": "Konfiguration wird geparst... Bitte warten.",
  "wizard.preview.text_building": "Vorschau wird erstellt...",
  "wizard.preview.status_building": "⏳ Vorschau-Konfiguration wird erstellt...",
  "wizard.preview.status_parsing_config": "⏳ ParserConfig wird geparst...",
  "wizard.preview.error": "Vorschau-Fehler: %v",
  "wizard.preview.status_error": "❌ Fehler: %v",
  "wizard.preview.status_ready": "✅ Vorschau bereit",

  "wizard.save.error_config_empty": "ParserConfig ist leer",
  "wizard.save.error_config_invalid": "ParserConfig ist ungültig",
  "wizard.save.error_no_sources": "Füge mindestens eine Quelle hinzu: Tab „Quellen“ (Hinzufügen) oder füge Proxys in ParserConfig im Tab „Outbounds“ hinzu.",
  "wizard.save.dialog_saving": "Speichern",
  "wizard.save.dialog_in_progress": "Speichern läuft bereits... Bitte warten.",
  "wizard.save.status_waiting": "Warte auf Parsing...",
  "wizard.save.status_parsing": "Abos werden geparst...",
  "wizard.save.status_building": "Config wird erstellt...",
  "wizard.save.status_preparing": "Vorbereiten...",
  "wizard.save.status_validating": "Validieren...",
  "wizard.save.status_saving_state": "Zustand wird gespeichert...",
  "wizard.save.status_done": "Fertig",
  "wizard.save.button_copy": "Config kopieren",
  "wizard.save.dialog_validation_failed": "Validierung fehlgeschlagen",
  "wizard.save.dialog_copied_title": "Kopiert",
  "wizard.save.dialog_copied_message": "Config in die Zwischenablage kopiert.",
  "wizard.save.dialog_success_message": "Config geschrieben nach %s\n\n✅ Validierung: Bestanden",
  "wizard.save.dialog_success_title": "Config gespeichert",
  "wizard.save.error_parse_failed": "Parsing der Abos fehlgeschlagen",
  "wizard.save.error_controller": "Controller nicht verfügbar",

  "wizard.add_rule.title_add": "Regel hinzufügen",
  "wizard.add_rule.title_edit": "Regel bearbeiten",
  "wizard.add_rule.placeholder_name": "Regelname",
  "wizard.add_rule.placeholder_ip": "IP-Adressen eingeben (CIDR-Format)\nz.B.: 192.168.1.0/24",
  "wizard.add_rule.placeholder_url": "Domains oder URLs eingeben (eine pro Zeile)\nz.B.: example.com",
  "wizard.add_rule.label_processes": "Prozesse (per Popup auswählen):",
  "wizard.add_rule.button_select_processes": "Prozesse auswählen...",
  "wizard.add_rule.check_match_by_path": "Nach Pfad abgleichen",
  "wizard.add_rule.radio_simple": "Einfach",
  "wizard.add_rule.radio_regex": "Regex",
  "wizard.add_rule.placeholder_path_simple": "Eine pro Zeile. * als Wildcard (z.B. */steam/* oder *\\Steam\\*).",
  "wizard.add_rule.placeholder_path_regex": "Eine pro Zeile. Vollständige Regex ohne /regex/i. Z.B.: ^C:\\\\Games\\\\.* oder .*steam.*",
  "wizard.add_rule.label_path_patterns": "Pfad-Muster (eine pro Zeile):",
  "wizard.add_rule.placeholder_custom": "Benutzerdefiniertes JSON (z.B. {})",
  "wizard.add_rule.label_custom_json": "Benutzerdefiniertes JSON:",
  "wizard.add_rule.placeholder_srs_urls": "SRS-URLs (eine pro Zeile)\nz.B.: https://raw.githubusercontent.com/.../file.srs",
  "wizard.add_rule.label_srs_urls": "SRS-URLs (eine pro Zeile):",
  "wizard.add_rule.placeholder_raw": "{\"ip_cidr\": [], \"outbound\": \"proxy-out\"}",
  "wizard.add_rule.type_ip": "IP-Adressen (CIDR)",
  "wizard.add_rule.type_domain": "Domains/URLs",
  "wizard.add_rule.type_process": "Prozesse",
  "wizard.add_rule.type_srs": "SRS",
  "wizard.add_rule.type_custom": "Benutzerdefiniertes JSON",
  "wizard.add_rule.domain_exact": "Exakte Domains",
  "wizard.add_rule.domain_suffix": "Suffix",
  "wizard.add_rule.domain_keyword": "Keyword",
  "wizard.add_rule.domain_regex": "Regex",
  "wizard.add_rule.label_ip": "IP-Adressen (eine pro Zeile, CIDR):",
  "wizard.add_rule.label_domains": "Domains (eine pro Zeile):",
  "wizard.add_rule.label_suffixes": "Domain-Suffixe (eine pro Zeile):",
  "wizard.add_rule.label_keywords": "Domain-Keywords (eine pro Zeile):",
  "wizard.add_rule.label_domain_regex": "Domain-Regex:",
  "wizard.add_rule.placeholder_domain_regex": "Z.B.: ^.*\\.google\\.com$ oder .*\\.(google|youtube)\\.com$ (vollständige Regex, ohne /.../)",
  "wizard.add_rule.label_outbound": "Outbound:",
  "wizard.add_rule.button_add": "Hinzufügen",
  "wizard.add_rule.button_save": "Speichern",
  "wizard.add_rule.button_cancel": "Abbrechen",
  "wizard.add_rule.button_remove": "−",
  "wizard.add_rule.window_select_processes": "Prozesse auswählen",
  "wizard.add_rule.button_add_process": "+ Hinzufügen",
  "wizard.add_rule.button_refresh": "Aktualisieren",
  "wizard.add_rule.button_close": "Schließen",
  "wizard.add_rule.label_name": "Regelname:",
  "wizard.add_rule.label_type": "Regeltyp:",
  "wizard.add_rule.tab_form": "Form",
  "wizard.add_rule.tab_raw": "Raw",
  "wizard.add_rule.error_name_required": "Regelname ist erforderlich",
  "wizard.add_rule.error_raw_empty": "Raw-JSON ist leer",
  "wizard.add_rule.error_must_be_object": "Regel muss ein JSON-Objekt sein",
  "wizard.add_rule.error_must_have_outbound": "Regel muss \"outbound\" oder \"action\" enthalten",
  "wizard.add_rule.dialog_not_recognized_title": "Regel nicht erkannt",
  "wizard.add_rule.dialog_not_recognized_msg": "Regel konnte nicht erkannt werden; Formular kann nicht geladen werden. Bitte im Raw-Tab bleiben.",
  "wizard.add_rule.srs_hint": "Wir empfehlen, im Projekt nach passenden Regelsets (SRS) zu suchen:",
  "wizard.add_rule.srs_dialog_title": "SRS-Regelsets",
  "wizard.add_rule.srs_dialog_close": "Schließen",
  "wizard.add_rule.button_open": "Öffnen",
  "wizard.add_rule.error_path_required": "Bitte mindestens ein Pfad-Muster eingeben",
  "wizard.add_rule.error_srs_required": "Bitte mindestens eine SRS-URL eingeben",
  "wizard.add_rule.error_srs_valid": "Bitte mindestens eine gültige SRS-URL eingeben",
  "wizard.add_rule.error_custom_empty": "Benutzerdefiniertes JSON ist leer",
  "wizard.add_rule.error_custom_object": "Benutzerdefiniertes JSON muss ein Objekt sein",

  "wizard.save_state.title": "Zustand speichern",
  "wizard.save_state.placeholder_id": "Zustands-ID eingeben (a-z, A-Z, 0-9, -, _)",
  "wizard.save_state.placeholder_comment": "Kommentar (optional)",
  "wizard.save_state.warning_exists": "Ein Zustand mit dieser ID existiert bereits und wird überschrieben.",
  "wizard.save_state.label_id": "Zustands-ID:",
  "wizard.save_state.label_comment": "Kommentar:",
  "wizard.save_state.button_save": "Speichern",
  "wizard.save_state.button_cancel": "Abbrechen",
  "wizard.save_state.error_empty": "ID darf nicht leer sein",

  "wizard.load_state.title": "Zustand laden",
  "wizard.load_state.error_load_list": "Zustandsliste konnte nicht geladen werden",
  "wizard.load_state.suffix_current": " (Aktuell)",
  "wizard.load_state.button_load": "Laden",
  "wizard.load_state.button_new": "Neu",
  "wizard.load_state.button_delete": "Löschen",
  "wizard.load_state.button_cancel": "Abbrechen",
  "wizard.load_state.error_delete_current": "Aktueller Zustand (state.json) kann nicht gelöscht werden",
  "wizard.load_state.dialog_delete_title": "Zustand löschen",
  "wizard.load_state.dialog_delete_confirm": "Zustand „%s“ löschen?",
  "wizard.load_state.error_delete": "Zustand konnte nicht gelöscht werden",

  "wizard.get_free.loading_title": "Laden",
  "wizard.get_free.loading_msg": "get_free.json wird heruntergeladen...",
  "wizard.get_free.error_occurred": "Ein Fehler ist aufgetreten: %v",
  "wizard.get_free.error_download": "get_free.json konnte nicht heruntergeladen werden:\n\nBitte Internetverbindung prüfen und erneut versuchen.",
  "wizard.get_free.error_load": "get_free.json konnte nicht geladen werden:\n\nBitte Datei prüfen oder erneut herunterladen.",
  "wizard.get_free.error_data_not_loaded": "Fehler: Daten wurden nicht geladen",
  "wizard.get_free.error_process": "get_free.json konnte nicht verarbeitet werden",
  "wizard.get_free.button_apply": "Konfiguration anwenden",
  "wizard.get_free.dialog_apply_title": "Konfiguration anwenden",
  "wizard.get_free.dialog_apply_confirm": "Durch Anwenden dieser Konfiguration werden deine aktuellen Quellen und Regeln ersetzt. Fortfahren?",
  "wizard.get_free.error_apply": "Konfiguration konnte nicht angewendet werden",
  "wizard.get_free.dialog_success_title": "Erfolg",
  "wizard.get_free.dialog_success_msg": "Konfiguration aus get_free.json wurde erfolgreich angewendet!",
  "wizard.get_free.dialog_title": "Kostenloses VPN",
  "wizard.get_free.button_close": "Schließen",

  "wizard.outbound.title_edit": "Outbound bearbeiten",
  "wizard.outbound.title_add": "Outbound hinzufügen",
  "wizard.outbound.placeholder_tag": "z.B. proxy-out",
  "wizard.outbound.type_manual": "manuell (selector)",
  "wizard.outbound.type_auto": "auto (urltest)",
  "wizard.outbound.placeholder_comment": "Kommentar (optional)",
  "wizard.outbound.scope_all": "Für alle",
  "wizard.outbound.scope_source": "Für Quelle: ",
  "wizard.outbound.label_source": "Quelle ",
  "wizard.outbound.label_tag": "tag",
  "wizard.outbound.placeholder_filter": "z.B. /🇳🇱/i oder !/(🇷🇺)/i",
  "wizard.outbound.placeholder_preferred": "z.B. /🇳🇱/i",
  "wizard.outbound.label_filters": "Filter (Key und Value; !/regex/i für Negation)",
  "wizard.outbound.label_preferred": "Bevorzugter Standard (Filter für Default-Node)",
  "wizard.outbound.label_add_outbounds": "Outbounds am Anfang hinzufügen (direct-out, reject, andere)",
  "wizard.outbound.label_raw_json": "Raw-Outbound-JSON",
  "wizard.outbound.button_docs": "📖 Dokumentation",
  "wizard.outbound.label_scope": "Geltungsbereich",
  "wizard.outbound.label_tag_field": "Tag",
  "wizard.outbound.label_type": "Typ",
  "wizard.outbound.label_comment": "Kommentar",
  "wizard.outbound.preview_switch": "Zur Vorschau wechseln, um Nodes für diesen Outbound zu sehen.",
  "wizard.outbound.preview_no_presenter": "Vorschau in diesem Kontext nicht verfügbar (kein Presenter).",
  "wizard.outbound.preview_model_nil": "Vorschau nicht verfügbar: Assistenten-Modell ist nil.",
  "wizard.outbound.preview_invalid_json": "Vorschau konnte nicht erstellt werden: ungültiges Outbound-JSON. Bitte in den „Raw“-Tab wechseln und JSON zuerst korrigieren.",
  "wizard.outbound.preview_cache_failed": "Vorschau-Cache konnte nicht erstellt werden: %v",
  "wizard.outbound.preview_no_nodes": "Keine Nodes für die Vorschau verfügbar. Bitte Quellen konfigurieren und erneut versuchen.",
  "wizard.outbound.preview_unknown_source": "Unbekannte Quelle",
  "wizard.outbound.preview_status": "%d Node(s) insgesamt, %d passen auf Filter",
  "wizard.outbound.preview_default": ", Standard: %s",
  "wizard.outbound.preview_also_includes": " | Enthält auch: %s",
  "wizard.outbound.preview_source_errors": " | ⚠️ %d Quellfehler",
  "wizard.outbound.tab_settings": "Einstellungen",
  "wizard.outbound.tab_raw": "Raw",
  "wizard.outbound.tab_preview": "Vorschau",
  "wizard.outbound.button_cancel": "Abbrechen",
  "wizard.outbound.button_save": "Speichern",
  "wizard.outbound.error_config": "ParserConfig ist nicht verfügbar",
  "wizard.outbound.error_invalid_json": "Ungültiges JSON",
  "wizard.outbound.error_tag_required": "Tag ist erforderlich",
  "wizard.outbound.error_open_docs": "Dokumentation konnte nicht geöffnet werden",
  "wizard.outbound.configurator_label": "Outbounds:",
  "wizard.outbound.button_add": "Hinzufügen"
}