{
  "nav.config": "Konfiguration",
  "nav.monitoring": "Monitoring",
  "nav.live": "Live",
  "nav.server": "Server",
  "nav.cc_profiles": "CC Profile",
  "nav.skills": "Skills",
  "nav.mcp_tools": "MCP Tools",
  "nav.tool_eval": "Tool Eval",
  "nav.pipeline_log": "Pipeline Log",
  "nav.federation": "Föderation",
  "nav.quarantine": "Quarantäne",
  "nav.templates": "Templates",
  "nav.users": "Users",
  "nav.user_content": "User Content",
  "nav.maintenance": "Wartung",
  "nav.statistics": "Statistik",
  "lbl.knowledge_snapshot": "Wissensgraph-Snapshot",
  "lbl.latency_per_node": "p95 Latenz pro Node",
  "lbl.template_activity": "Template-Nutzung",
  "lbl.healer_history": "Healer-Historie",
  "lbl.ontology_runner": "Ontologie-Gap-Auflösung",
  "lbl.node_active": "Node aktiv (User-Freigaben sichtbar)",
  "lbl.floating_routing": "Floating-Routing aktiv",
  "lbl.server_blocked": "Server gesperrt (Hard-Block)",
  "lbl.dedicated_healer": "Dedicated Gap Healer (Dauerlauf)",
  "lbl.dedicated_healer_block": "Server für reguläre Anfragen blockieren",
  "lbl.dedicated_healer_template": "Curator-Template (Node)",
  "btn.dedicated_healer_start": "Dauerlauf starten",
  "btn.dedicated_healer_stop": "Dauerlauf stoppen",
  "msg.dedicated_healer_desc": "Startet einen permanenten Gap-Healer-Loop auf einem einzigen Node. Läuft bis zum manuellen Stopp — ideal für einen dediziert abgestellten Healing-Host.",
  "msg.dedicated_healer_loading": "Lade Server",
  "lbl.cleanup": "Cleanup & Altlasten",
  "lbl.cleanup_manager": "System-Cleanup Manager",
  "lbl.regeneration": "Auto-Regeneration",
  "btn.trigger_ontology": "Jetzt starten",
  "btn.cleanup_scan": "Scannen",
  "btn.cleanup_run": "Bereinigen",
  "btn.regen_dashboard": "Dashboard neu bauen",
  "btn.reload_prometheus": "Prometheus neu laden",
  "msg.ontology_runner_desc": "Startet den Gap-Healer einmalig im Hintergrund. Nutzt alle Server mit aktiver Ontologie-Checkbox.",
  "msg.cleanup_desc": "Erkennt Artefakte (Templates, Redis-Keys, Neo4j-Entities, Prometheus-Targets), deren zugehöriger Inferenz-Server gelöscht wurde.",
  "msg.cleanup_click_scan": "Klicke „Scannen\" um nach Altlasten zu suchen.",
  "msg.regeneration_desc": "Regeneriert Grafana-Dashboards und Prometheus-Scrape-Configs aus der aktuellen Server-Liste.",
  "lbl.template_verify": "Template-Modelle prüfen",
  "btn.template_verify": "Prüfen",
  "btn.template_pull_missing": "Fehlende Modelle pullen",
  "msg.template_verify_desc": "Prüft für jedes Template, ob das referenzierte Modell (model@Node) auf der zugehörigen Ollama-Instanz physisch verfügbar ist.",
  "msg.template_verify_click": "Klicke „Prüfen\" um Template-Modelle zu verifizieren.",
  "nav.benchmarks": "Benchmarks",
  "nav.starfleet": "Starfleet",
  "nav.logout": "Logout",
  "btn.save": "Speichern & Orchestrator neustarten",
  "btn.cancel": "Abbrechen",
  "btn.edit": "Bearbeiten",
  "btn.copy_profile": "Profil kopieren",
  "btn.backup": "Backup erstellen",
  "btn.delete": "Löschen",
  "btn.activate": "Aktivieren",
  "btn.deactivate": "Deaktivieren",
  "btn.enable_profile": "Aktivieren",
  "btn.disable_profile": "Deaktivieren",
  "btn.add_server": "Server hinzufügen",
  "btn.test_all": "Alle testen",
  "btn.new_profile": "Neues Profil",
  "btn.new_template": "Neues Template",
  "btn.new_user": "Neuer User",
  "btn.new_skill": "Neuer Skill",
  "btn.refresh": "Aktualisieren",
  "btn.generate_dashboard": "Dashboard aktualisieren",
  "lbl.ontology_cronjob": "Für Ontologie-Gap-Cronjob nutzen",
  "lbl.ontology_short": "Onto",
  "tip.ontology_cronjob": "Beim Aktivieren wird automatisch ein Curator-Template erstellt und ein passendes LLM gepullt.",
  "btn.export_json": "Export JSON",
  "btn.import_json": "Import JSON",
  "btn.import_code": "Import Code",
  "btn.send_reset": "Reset-Link senden",
  "btn.test_smtp": "Test-Mail senden",
  "btn.send_email": "E-Mail senden",
  "btn.send_bulk_email": "Alle anschreiben",
  "btn.toggle_theme": "Dark / Light Mode",
  "btn.to_login": "Zum Login",
  "btn.back_to_login": "Zurück zum Login",
  "btn.back_to_admin": "Zurück zu Admin",
  "btn.set_password": "Passwort setzen",
  "btn.create_user": "User anlegen",
  "btn.create_key": "Key erstellen",
  "btn.save_profile": "Speichern",
  "btn.import": "Importieren",
  "btn.git_pull": "Git Pull",
  "btn.manage_profiles": "Profile verwalten / neu anlegen",
  "btn.first_profile": "Erstes Profil anlegen",
  "btn.copy_template": "Als Vorlage kopieren",
  "btn.first_template": "Erstes Template erstellen",
  "btn.kill": "Kill",
  "btn.history_clear": "History löschen",
  "btn.revoke_selected": "Ausgewählte entziehen",
  "btn.save_permissions": "Freigaben speichern",
  "btn.new_reset_link": "Neuen Reset-Link anfordern",
  "btn.save_settings": "Einstellungen speichern",
  "page.dashboard": "Dashboard",
  "page.monitoring": "System-Monitoring",
  "page.live": "Live Monitoring",
  "page.servers": "Inference-Server",
  "page.profiles": "Claude Code Integrations-Profile",
  "page.templates": "Expert Templates",
  "page.users": "User Management",
  "page.login": "Anmelden",
  "page.forgot_pw": "Passwort vergessen",
  "page.reset_pw": "Passwort zurücksetzen",
  "page.change_password": "Passwort ändern",
  "page.skills": "Skills & Slash-Commands",
  "page.mcp_tools": "MCP Precision Tools",
  "page.tool_eval": "Tool Call Evaluation",
  "page.user_content": "User Content",
  "page.user_dashboard": "Dashboard",
  "page.billing": "Abrechnung",
  "page.usage": "Nutzungshistorie",
  "page.api_keys": "API Keys",
  "page.cc_profiles": "CC Profile",
  "page.profile_pw": "Profil & Passwort",
  "lbl.username": "Benutzername",
  "lbl.password": "Passwort",
  "lbl.email": "E-Mail",
  "lbl.email_address": "E-Mail-Adresse",
  "lbl.display_name": "Anzeigename",
  "lbl.new_password": "Neues Passwort",
  "lbl.confirm_password": "Passwort bestätigen",
  "lbl.min_8_chars": "min. 8 Zeichen",
  "lbl.services": "Dienste-Status",
  "lbl.inference": "Inference-Server",
  "lbl.ollama_servers": "Ollama-Server",
  "lbl.last_update": "Stand:",
  "lbl.loading": "Lädt...",
  "lbl.no_data": "Keine Daten",
  "lbl.models": "Modelle",
  "lbl.profile_name": "Profilname",
  "lbl.description": "Beschreibung",
  "lbl.category": "Kategorie",
  "lbl.endpoint": "Endpunkt",
  "lbl.mode": "Modus",
  "lbl.timeout": "Timeout",
  "lbl.token": "Token",
  "lbl.prefix": "Prefix",
  "lbl.label": "Label",
  "lbl.enabled_profiles": "Aktivierte Profile",
  "lbl.fallback_settings": "Fallback-Einstellungen",
  "lbl.or": "oder",
  "lbl.total": "gesamt",
  "lbl.today": "Heute verbraucht",
  "lbl.this_month": "Diesen Monat",
  "lbl.total_budget": "Gesamt",
  "lbl.unlimited": "unlimitiert",
  "lbl.tokens": "Tokens",
  "lbl.daily_limit": "Tägliches Limit (Tokens)",
  "lbl.monthly_limit": "Monatliches Limit",
  "lbl.total_limit": "Gesamt-Limit",
  "lbl.current_usage": "Aktueller Verbrauch",
  "lbl.api_key_prefix": "Prefix",
  "lbl.api_key_label": "Key-Label (optional)",
  "lbl.last_used": "Zuletzt genutzt",
  "lbl.never": "nie",
  "lbl.source": "Quelle",
  "lbl.body": "Body (Prompt-Inhalt)",
  "lbl.name": "Name",
  "lbl.role": "Rolle",
  "lbl.server_default": "Server-Default",
  "lbl.inference_changes": "Änderungen hier werden in INFERENCE_SERVERS gespeichert",
  "lbl.inference_url_col": "URL (/v1)",
  "lbl.first_name": "Vorname",
  "lbl.last_name": "Nachname",
  "lbl.street_address": "Straße und Hausnummer",
  "lbl.street_address_hint": "z.B. Musterstraße 12",
  "lbl.postal_code": "PLZ",
  "lbl.city": "Stadt / Ort",
  "lbl.country": "Land",
  "lbl.date_of_birth": "Geburtsdatum",
  "lbl.gender": "Geschlecht",
  "lbl.gender_m": "Männlich (M)",
  "lbl.gender_w": "Weiblich (W)",
  "lbl.gender_d": "Divers (D)",
  "section.personal_data": "Stammdaten",
  "msg.required_fields_missing": "Bitte alle Pflichtfelder ausfüllen.",
  "lbl.email_subject": "Betreff",
  "lbl.email_body": "Nachricht",
  "lbl.email_recipient": "Empfänger",
  "lbl.all_active_users": "Alle aktiven Benutzer",
  "lbl.smtp_ssl": "SSL/TLS (Port 465)",
  "lbl.smtp_host": "SMTP Host",
  "lbl.smtp_port": "Port",
  "lbl.smtp_user": "Benutzername",
  "lbl.smtp_pass": "Passwort",
  "lbl.smtp_from": "Absender (From)",
  "lbl.smtp_test_recipient": "Test-Empfänger E-Mail",
  "lbl.public_urls": "Öffentliche URLs",
  "lbl.public_urls_note": "Werden im User-Portal angezeigt und in E-Mails verwendet",
  "lbl.user_portal_url": "User-Portal",
  "lbl.admin_url": "Admin-Backend",
  "lbl.public_api_url": "Öffentliche API",
  "lbl.log_url": "Log-Viewer URL (extern)",
  "lbl.log_url_help": "Externe URL des Dozzle-Log-Viewers (vom Nginx-Proxy terminiert)",
  "lbl.prometheus_url_public": "Prometheus URL (extern)",
  "lbl.prometheus_url_public_help": "Externe URL für den Prometheus-Zugriff (vom Nginx-Proxy terminiert)",
  "lbl.not_set": "nicht konfiguriert",
  "lbl.sso_url": "Authentik-URL (SSO-Basis-URL)",
  "lbl.oidc_client_id": "Client-ID",
  "lbl.oidc_client_secret": "Client-Secret",
  "lbl.oidc_redirect_uri": "Redirect-URI (Callback-URL)",
  "lbl.oidc_jwks_url": "JWKS-URL (Backend-JWT-Validierung)",
  "lbl.oidc_issuer": "Issuer-URL",
  "lbl.oidc_end_session_url": "End-Session-URL (Logout-Redirect)",
  "lbl.oidc_end_session_hint": "Wohin wird nach dem Logout weitergeleitet? Leer = zurück zur Login-Seite.",
  "lbl.public_sso_url": "Öffentliche Authentik-URL (Browser-Redirect)",
  "lbl.public_sso_url_hint": "Optional. Falls Authentik intern nur per Container-Name erreichbar ist, hier die öffentliche DNS-URL eintragen (z.B. https://authentik.example.com). Der Login-Button verwendet diese URL für die Browser-Weiterleitung. Leer lassen, wenn AUTHENTIK_URL bereits öffentlich erreichbar ist.",
  "lbl.token_price": "Token-Preis (€ / Token)",
  "lbl.log_level": "Log-Level",
  "lbl.ollama_api_key": "Ollama API Key",
  "lbl.judge_model": "Judge-Modell (Merger / Critic)",
  "lbl.planner_model": "Planner-Modell (Task-Zerlegung)",
  "lbl.tool_model": "Tool-Modell",
  "lbl.reasoning_model": "Reasoning-Modell",
  "lbl.claude_models": "Akzeptierte Claude-Model-IDs",
  "lbl.searxng_url": "SearXNG URL (Web-Suche)",
  "hint.searxng_primary": "primäre Such-Engine — SearXNG empfohlen",
  "lbl.ddg_fallback": "DuckDuckGo-Fallback aktivieren",
  "hint.ddg_fallback": "automatischer Rückfall auf DuckDuckGo Public API wenn die primäre Such-Engine kein Ergebnis liefert (kein API-Key nötig)",
  "lbl.admin_preview": "Admin-Vorschau",
  "lbl.impersonate_exit": "Zurück zu Admin",
  "status.running": "running",
  "status.active": "Aktiv",
  "status.inactive": "Inaktiv",
  "status.locked": "Gesperrt",
  "status.required": "Verpflichtend",
  "status.optional": "Optional",
  "status.role_primary": "Primary (wird zuerst ausgeführt)",
  "status.role_fallback": "Fallback (nur bei niedrigem T1-Konfidenz)",
  "status.role_always": "Always (immer ausgeführt, Ensemble)",
  "status.online": "Online",
  "status.offline": "Offline",
  "status.idle": "Idle",
  "status.enabled": "Aktiv",
  "status.disabled": "Deaktiviert",
  "status.imported": "✓ Importiert",
  "status.on": "an",
  "status.off": "aus",
  "msg.config_saved": "Konfiguration gespeichert. Orchestrator wird neu gestartet...",
  "msg.invalid_json": "Ungültiges JSON: {error}",
  "msg.invalid_expert_models": "Fehler: Expert-Modelle ungültig — {error}",
  "msg.invalid_servers": "Fehler: Inference-Server-Konfiguration ungültig — {error}",
  "msg.login_failed": "Ungültige Zugangsdaten",
  "msg.csrf_failed": "Sicherheitsprüfung fehlgeschlagen. Bitte erneut versuchen.",
  "msg.oidc_error": "OIDC-Fehler beim Login.",
  "msg.profile_deleted": "Profil gelöscht.",
  "msg.template_deleted": "Template gelöscht.",
  "msg.skill_deleted": "Skill gelöscht.",
  "msg.import_done": "Import abgeschlossen: {imported} importiert, {skipped} übersprungen",
  "msg.import_failed": "Import fehlgeschlagen: {error}",
  "msg.pw_changed": "Dein Passwort wurde erfolgreich geändert.",
  "msg.pw_mismatch": "Die Passwörter stimmen nicht überein.",
  "msg.pw_too_short": "Das Passwort muss mindestens 8 Zeichen lang sein.",
  "msg.reset_sent": "Falls ein Account mit dieser E-Mail existiert, wurde ein Reset-Link verschickt. Bitte prüfe deinen Posteingang.",
  "msg.admin_reset_sent": "Passwort-Reset-Link wurde an {email} gesendet.",
  "msg.smtp_test_ok": "Test-Mail erfolgreich versendet an {to}.",
  "msg.smtp_test_fail": "Versand fehlgeschlagen: {error}",
  "msg.email_sent": "{n} E-Mail(s) versendet.",
  "msg.email_fields_required": "Betreff und Nachricht sind erforderlich.",
  "msg.confirm_reset": "Passwort-Reset-Link an {user} ({email}) senden?",
  "msg.reset_link_invalid": "Dieser Reset-Link ist ungültig oder abgelaufen.",
  "msg.profile_enabled": "Profil aktiviert. Orchestrator wird neu gestartet...",
  "msg.profile_disabled": "Profil deaktiviert. Orchestrator wird neu gestartet...",
  "msg.profile_sync_hint": "Profil gespeichert. Änderungen werden innerhalb von 60 Sekunden aktiv. Für sofortige Übernahme das Profil umschalten oder den Orchestrator neu starten.",
  "msg.user_created": "User angelegt.",
  "msg.user_updated": "User aktualisiert.",
  "msg.user_deleted": "User gelöscht.",
  "msg.key_created": "API Key erstellt.",
  "msg.key_deleted": "API Key gelöscht.",
  "msg.permissions_saved": "Freigaben gespeichert.",
  "msg.settings_saved": "Einstellungen gespeichert.",
  "msg.not_found": "Nicht gefunden.",
  "msg.unknown_error": "Unbekannter Fehler",
  "msg.load_error": "Fehler beim Laden",
  "msg.kill_failed": "Kill fehlgeschlagen",
  "dialog.confirm_delete": "Wirklich löschen?",
  "dialog.confirm_profile_delete": "Profil wirklich löschen?",
  "dialog.confirm_skill_delete": "Skill '{name}' wirklich löschen?",
  "dialog.import_overwrite": "Bestehende Profile überschreiben? OK = Ersetzen | Abbrechen = Nur neue importieren",
  "dialog.confirm_kill": "Prozess {pid} aus dem Live-Monitoring entfernen?",
  "dialog.confirm_user_delete": "User wirklich löschen?",
  "dialog.confirm_template_delete": "Template wirklich löschen?",
  "dialog.confirm_cc_profile_delete": "CC Profil wirklich löschen?",
  "js.select_placeholder": "Auswählen…",
  "js.search_placeholder": "Suche…",
  "js.no_options": "Keine Optionen verfügbar",
  "js.loading_models": "Lade Modelle…",
  "js.loading": "Lade…",
  "js.error": "Fehler",
  "js.paste_json": "Bitte JSON-Code einfügen.",
  "js.give_name": "Bitte einen Profilnamen vergeben.",
  "js.give_skill_name": "Bitte einen Skill-Namen vergeben.",
  "js.invalid_json": "Ungültiges JSON",
  "js.export_failed": "Export fehlgeschlagen",
  "js.import_done": "Import abgeschlossen",
  "js.imported": "importiert",
  "js.skipped": "übersprungen",
  "js.skill_activated": "Skill '/{name}' aktiviert",
  "js.skill_deactivated": "Skill '/{name}' deaktiviert",
  "js.skill_updated": "Skill '/{name}' importiert — server-seitig verfügbar",
  "js.git_pull_failed": "git pull fehlgeschlagen",
  "js.tool_toggled": "Tool {name} {state}",
  "js.server_not_reachable": "MCP-Server nicht erreichbar. Läuft der mcp-precision-Container?",
  "table.username": "Benutzername",
  "table.email": "E-Mail",
  "table.status": "Status",
  "table.role": "Rolle",
  "table.budget": "Budget (tägl. / monatl. / gesamt)",
  "table.created": "Erstellt",
  "table.model": "Modell",
  "table.duration": "Dauer",
  "table.user": "User",
  "table.mode": "Modus",
  "table.template": "Template",
  "table.type": "Typ",
  "table.client_ip": "Client-IP",
  "table.request_id": "Request-ID",
  "table.started": "Gestartet",
  "table.ended": "Beendet",
  "table.last_seen": "Zuletzt",
  "table.actions": "Aktionen",
  "table.name": "Name",
  "table.description": "Beschreibung",
  "table.category": "Kategorie",
  "table.llms": "LLMs",
  "table.system_prompt": "System-Prompt",
  "table.prefix": "Prefix",
  "table.label": "Label",
  "table.latency": "Latenz (ms)",
  "table.gpus": "GPUs",
  "table.factor": "Faktor",
  "table.tool_name": "Tool-Name",
  "table.input_type": "Input-Typ",
  "table.tools_avail": "Tools verf.",
  "table.output": "Output",
  "table.latency_ms": "Latenz",
  "table.tokens": "Tokens",
  "table.choice": "Choice",
  "table.time": "Zeit",
  "table.resource": "Ressource",
  "table.quota": "Token verbleibend",
  "table.reset": "Reset",
  "table.quant": "Quant.",
  "table.family": "Familie",
  "table.expires": "Läuft ab",
  "table.param": "Parameter",
  "modal.new_profile": "Neues Profil",
  "modal.edit_profile": "Profil bearbeiten",
  "modal.new_template": "Neues Expert Template",
  "modal.edit_template": "Template bearbeiten",
  "modal.new_user": "Neuen User anlegen",
  "modal.edit_user": "User Details",
  "modal.new_skill": "Neuer Skill",
  "modal.send_email_title": "E-Mail senden",
  "modal.edit_skill": "Skill bearbeiten",
  "modal.import_profiles": "Profile importieren – JSON-Code",
  "modal.import_templates": "Templates importieren – JSON-Code",
  "modal.budget_tab": "Budget",
  "modal.permissions_tab": "Freigaben",
  "modal.api_keys_tab": "API Keys",
  "modal.usage_tab": "Verbrauch",
  "modal.usage_30days": "Details als JSON (30 Tage)",
  "modal.import_mode": "Modus",
  "modal.merge": "Merge – nur neue importieren",
  "modal.replace": "Replace – bestehende überschreiben",
  "modal.json_code": "JSON-Code einfügen",
  "section.models": "Modelle",
  "section.cc_integration": "Claude Code Integration",
  "section.system": "System",
  "section.smtp": "E-Mail / SMTP",
  "section.sso": "SSO / OIDC (Authentik)",
  "section.public_urls": "Öffentliche URLs",
  "section.expert_models": "Expert-Modelle",
  "section.graph_rag": "GraphRAG / Neo4j",
  "section.provider_limits": "Provider Token-Limits (Claude Code)",
  "section.token_usage": "Token-Verbrauch pro Modell",
  "section.cache_perf": "Cache-Performance",
  "section.expert_calls_cat": "Expert-Aufrufe nach Kategorie",
  "section.expert_calls_mdl": "Expert-Aufrufe nach Modell",
  "section.expert_calls_node": "Expert-Aufrufe nach Modell & Node",
  "section.req_by_mode": "Anfragen nach Modus",
  "section.confidence": "Konfidenz-Verteilung",
  "section.rl_flywheel": "RL Flywheel & Context Window",
  "section.compression": "History Compression",
  "section.corrections": "Correction Memory",
  "section.expert_failures": "Expert-Fehler",
  "metric.compressed": "komprimiert",
  "metric.unlimited": "ohne Limit",
  "metric.refinements": "Refinements",
  "section.latency": "Latenz & Bewertungen",
  "section.active_procs": "Aktive Prozesse",
  "section.llm_instances": "LLM Instanzen",
  "section.api_requests": "Laufende API-Anfragen",
  "section.background_jobs": "Wartungs- & Hintergrundjobs",
  "info.maintenance_jobs": "Ontologie-Heiler, Cronjobs, Provisionierung",
  "table.job": "Job",
  "table.progress": "Fortschritt",
  "label.force_think": "Chain-of-Thought",
  "section.context_window": "Context Window & Compression",
  "label.graphrag_max_chars": "GraphRAG Budget (Chars)",
  "label.history_max_turns": "History Max Turns",
  "label.history_max_chars": "History Max Chars",
  "label.unlimited": "unbegrenzt",
  "label.fixed_chars": "feste Zeichenzahl",
  "tip.graphrag_max_chars": "0 = automatisch aus Modell-Context-Window, >0 = festes Zeichenlimit",
  "tip.history_max_turns": "0 = globaler Standard, -1 = unbegrenzt (keine Compression)",
  "tip.history_max_chars": "0 = globaler Standard, -1 = unbegrenzt (keine Compression)",
  "label.compression_enabled": "History Compression",
  "tip.compression_toggle": "Aktiviert: ältere Turns werden komprimiert. Deaktiviert: volle History wird übergeben.",
  "label.global_default": "globaler Standard",
  "section.proc_history": "Prozess-Verlauf",
  "section.permissions": "Aktive Freigaben",
  "section.llm_server_status": "LLM Server Status",
  "metric.hit_rate": "Trefferquote",
  "metric.hits": "Treffer",
  "metric.misses": "Fehlschläge",
  "metric.p50": "Antwortzeit P50",
  "metric.p95": "Antwortzeit P95",
  "metric.self_rating": "Selbstbewertung (Ø)",
  "metric.user_rating": "Nutzer-Feedback (Ø)",
  "metric.of_5": "von 5 möglichen Punkten",
  "metric.tool_call_rate": "Tool-Call-Rate",
  "metric.rows_shown": "Einträge angezeigt",
  "metric.total_rows": "Zeilen gesamt in tool_eval.jsonl",
  "metric.total_reqs": "Anfragen gesamt",
  "metric.avg_req": "Ø / Anfrage",
  "metric.in": "↑ Eingabe",
  "metric.out": "↓ Ausgabe",
  "metric.in_work": "in Arbeit",
  "metric.waiting": "wartend",
  "metric.loaded": "geladen",
  "metric.avail_models": "Verfügbare Modelle",
  "metric.loaded_models": "Geladene Modelle",
  "metric.no_model": "Kein Modell geladen (Idle)",
  "metric.ollama_metrics": "Ollama Metriken",
  "metric.chromadb_docs": "ChromaDB-Dokumente",
  "metric.neo4j_entities": "Neo4j Entities",
  "metric.neo4j_relations": "Neo4j Relationen",
  "metric.ontology_entities": "Ontologie-Entities",
  "metric.planner_patterns": "Planner-Muster",
  "metric.ontology_gaps": "Ontologie-Lücken",
  "tip.factor": "Kostenmultiplikator für Token-Budget (1.0 = kein Aufschlag)",
  "tip.tier": "",
  "tip.timeout": "API-Timeout pro Server in Sekunden (leer = globaler Timeout)",
  "tip.active_toggle": "Server aktivieren oder deaktivieren (bleibt gespeichert, wird aber nicht verwendet)",
  "tip.tool_model": "Das lokale LLM das Tool-Calls (Bash, Dateizugriff) ausführt",
  "tip.mode": "Wie Text-Prompts verarbeitet werden. Tool-Calls gehen immer über das Tool-Modell.",
  "mode.native": "Native — Prompt direkt an Tool-Modell (kein MoE-Routing)",
  "mode.moe_reasoning": "MoE Reasoning — Prompt via Reasoning-Expert (Thinking-Blöcke)",
  "mode.moe_orchestrated": "MoE Orchestrated — Volle Pipeline: Planner + alle Experten",
  "mode.native_short": "native — Direkt an Tool-Modell",
  "mode.moe_reasoning_short": "moe_reasoning — Reasoning-Expert",
  "mode.moe_orchestrated_short": "moe_orchestrated — Volle Pipeline",
  "role.user": "User",
  "role.subscriber": "Abonent",
  "role.expert": "Experte",
  "role.admin": "Administrator",
  "perm.expert_template": "Expert Template",
  "perm.cc_profile": "Claude Code Profil",
  "perm.native_llm": "Native LLMs",
  "perm.skills": "Skills",
  "perm.mcp_tools": "MCP Tools",
  "perm.all_skills": "Alle Skills freigeben",
  "perm.all_mcp": "Alle MCP Tools freigeben",
  "perm.advanced": "Erweiterte Freigaben (moe_mode)",
  "perm.reset": "Zurücksetzen",
  "empty.no_users": "Noch keine User angelegt.",
  "empty.no_profiles": "Noch keine Profile. Klicke 'Neues Profil' um das erste anzulegen.",
  "empty.no_templates": "Noch keine Templates angelegt.",
  "empty.no_skills": "Noch keine Skills. Erstelle den ersten oder importiere aus dem Upstream-Tab.",
  "empty.no_requests": "Keine aktiven Anfragen",
  "empty.no_procs": "Noch keine abgeschlossenen Prozesse",
  "empty.no_upstream": "Keine Upstream-Skills gefunden",
  "empty.no_tools": "Keine Tools gefunden",
  "empty.no_servers": "Keine Server konfiguriert",
  "empty.no_templates_user": "Keine Templates vorhanden",
  "empty.no_cc_profiles_user": "Keine CC Profile vorhanden",
  "empty.click_tab": "Klicke den Tab um Upstream-Skills zu laden…",
  "info.templates_desc": "Expert Templates definieren, welche LLMs pro Experten-Kategorie genutzt werden — mit optionalem System-Prompt",
  "info.templates_tiers": "Primary = 1. Stufe. Fallback = nur bei niedrigem Konfidenz. Always = erzwungenes Ensemble.",
  "info.templates_perm": "Templates können in den User Freigaben zugewiesen werden",
  "info.skills_desc": "Client-unabhängig — server-seitig aufgelöst für Claude Code, Continue.dev, Open Code u.a.",
  "info.skills_resolve": "Server-seitige Auflösung",
  "info.skills_how": "Jeder Client kann /skill-name [args] senden — das MoE Backend ersetzt den Aufruf mit dem Skill-Inhalt",
  "info.skills_tokens": "Tokens werden nur beim tatsächlichen Aufruf verbraucht",
  "info.skills_upstream": "Skills importieren um sie lokal verfügbar zu machen. Nur importierte Skills werden aufgelöst",
  "info.skill_arguments": "Nutze $ARGUMENTS als Platzhalter für übergebene Argumente",
  "info.skill_name_hint": "Nur Kleinbuchstaben, Ziffern und Bindestriche. Wird zu /name",
  "info.mcp_desc": "Tools des mcp-precision-Containers aktivieren/deaktivieren",
  "info.tool_eval_desc": "Letzte Tool-Handler-Aufrufe — welche Modelle rufen Tools auf vs. schreiben Prosa?",
  "info.color_coding": "Farb-Coding: ≤30s · ≤120s · >120s (Timeout-Verdacht)",
  "info.no_profiles_enabled": "Keine Profile aktiviert — Fallback-Einstellungen gelten.",
  "info.forgot_pw_hint": "Gib deine E-Mail-Adresse ein. Du erhältst einen Link zum Zurücksetzen deines Passworts (gültig für 1 Stunde).",
  "info.reset_sent": "Falls ein Account mit dieser E-Mail-Adresse existiert, wurde eine E-Mail mit einem Reset-Link verschickt. Bitte prüfe deinen Posteingang.",
  "info.tool_calls_always": "Tool-Calls laufen immer via Tool-Modell, unabhängig vom Modus.",
  "info.think_stream": "(zeigt Pipeline-Fortschritt: 📋 Planner analysiert…)",
  "info.claude_models_hint": "Die Model-IDs die Claude Code per ANTHROPIC_MODEL=... sendet. Der MCP-Server akzeptiert und routet diese intern.",
  "info.reasoning_model_hint": "leer = aus Expert Models",
  "info.upstream_source": "github.com/anthropics/skills",
  "info.ref_files": "Referenz-Datei(en)",
  "info.no_desc": "Keine Beschreibung",
  "info.auto_refresh": "Auto-Refresh (10s)",
  "info.auto_5s": "Auto 5s",
  "info.updating": "Aktualisierung läuft…",
  "portal.login_header": "MoE Portal Login",
  "portal.forgot_header": "Passwort zurücksetzen",
  "portal.reset_header": "Neues Passwort setzen",
  "portal.forgot_link": "Passwort vergessen?",
  "portal.pw_change_required": "Passwort ändern erforderlich",
  "portal.pw_change_hint": "Aus Sicherheitsgründen müssen Sie Ihr initiales Passwort ändern, bevor Sie fortfahren können.",
  "portal.sso_login": "Mit Authentik anmelden (SSO)",
  "portal.sidebar.dashboard": "Dashboard",
  "portal.sidebar.billing": "Abrechnung",
  "portal.sidebar.usage": "Nutzungshistorie",
  "portal.sidebar.api_keys": "API Keys",
  "portal.sidebar.templates": "Meine Templates",
  "portal.sidebar.cc_profiles": "CC Profile",
  "portal.sidebar.profile": "Profil & Passwort",
  "portal.from_tokens": "von {n} Tokens",
  "portal.remaining": "noch {n}",
  "portal.chart_14d": "Token-Verbrauch (14 Tage)",
  "portal.active_keys": "Aktive API Keys",
  "portal.manage": "Verwalten",
  "portal.no_keys_hint": "Noch keine Keys. <a href='/user/keys'>Jetzt erstellen</a>.",
  "portal.my_expert_config": "Meine Experten-Konfiguration",
  "portal.category_col": "Kategorie",
  "portal.models_col": "Modelle",
  "portal.no_experts": "Keine Experten konfiguriert.",
  "portal.no_template_assigned": "Es ist kein Expert Template zugewiesen. Es wird die globale Standard-Konfiguration verwendet.",
  "portal.expert_tools_header": "Deine Expert-Tools",
  "portal.expert_tools_desc": "Du hast die Rolle <strong>Experte</strong> – erstelle eigene Templates und CC Profile basierend auf deinen freigeschalteten Servern.",
  "portal.my_templates_link": "Meine Templates",
  "portal.cc_profiles_link": "CC Profile",
  "portal.budget_updated": "Aktualisiert",
  "portal.budget_status": "Budget-Status",
  "portal.period_col": "Periode",
  "portal.total_col": "Gesamt",
  "portal.limit_col": "Limit",
  "portal.remaining_col": "Verbleibend",
  "portal.progress_col": "Fortschritt",
  "portal.reset_col": "Reset",
  "portal.period_daily": "Täglich",
  "portal.period_monthly": "Monatlich",
  "portal.period_total": "Gesamt",
  "portal.no_reset": "kein Reset",
  "portal.usage_by_model": "Verbrauch nach Modell (30 Tage)",
  "portal.requests_col": "Anfragen",
  "portal.total_requests": "Anfragen gesamt",
  "portal.total_tokens_card": "Tokens gesamt",
  "portal.month_tokens": "Tokens diesen Monat",
  "portal.days_7": "7 Tage",
  "portal.days_30": "30 Tage",
  "portal.days_90": "90 Tage",
  "portal.filter_token": "Token-Name",
  "portal.filter_mode": "Modus",
  "portal.filter_status": "Status",
  "portal.filter_from": "Von",
  "portal.filter_to": "Bis",
  "portal.all_modes": "Alle Modi",
  "portal.all": "Alle",
  "portal.errors": "Fehler",
  "portal.col_timestamp": "Zeitpunkt",
  "portal.col_session": "Session ID",
  "portal.col_model": "Modell / Template",
  "portal.col_api_key": "API-Key",
  "portal.col_prompt": "Prompt",
  "portal.col_completion": "Completion",
  "portal.no_entries": "Keine Einträge im gewählten Zeitraum.",
  "portal.note_title": "Notiz zur Transaktion",
  "portal.note_placeholder": "Eigene Notiz, Vergleich, Beobachtung …",
  "portal.note_edit": "Notiz bearbeiten",
  "portal.filter_reset_tip": "Filter zurücksetzen",
  "portal.entries_shown": "{visible} von {all} Einträgen",
  "portal.new_key_banner": "Neuer API Key (nur jetzt sichtbar — bitte sicher aufbewahren!)",
  "portal.my_api_keys": "Meine API Keys",
  "portal.col_created": "Erstellt",
  "portal.user_default": "(User-Standard)",
  "portal.revoke_confirm": "Key wirklich sperren?",
  "portal.revoke_key": "Sperren",
  "portal.no_api_keys": "Noch keine API Keys.",
  "portal.label_edit_title": "Token-Label bearbeiten",
  "portal.create_key_title": "Neuen API Key erstellen",
  "portal.key_label_optional": "Bezeichnung (optional)",
  "portal.key_label_hint": "z.B. Claude Code Laptop",
  "portal.api_usage_title": "API-Nutzung",
  "portal.api_bearer_desc": "Verwende deinen API Key als Bearer-Token:",
  "portal.api_x_key_desc": "Oder als <code>x-api-key</code> Header (Anthropic-kompatibel):",
  "portal.save_error": "Fehler beim Speichern",
  "portal.my_data": "Meine Daten",
  "portal.username_readonly": "Username (nicht änderbar)",
  "portal.change_pw_hint": "Passwort ändern (leer lassen = unverändert)",
  "portal.pw_placeholder": "Mind. 8 Zeichen",
  "portal.timezone_header": "Zeitzone",
  "portal.timezone_desc": "Der Server speichert alle Zeiten in UTC. Stelle deinen lokalen Offset ein, damit Zeitstempel in der Nutzungshistorie deiner Ortszeit entsprechen.",
  "portal.saved": "Gespeichert",
  "portal.alerts_header": "Token-Limit Benachrichtigungen",
  "portal.alerts_enable": "Benachrichtigungen aktivieren",
  "portal.threshold_label": "Warn-Schwellwert:",
  "portal.alert_email_label": "Benachrichtigungs-E-Mail",
  "portal.alert_email_hint": "Leer lassen = Profil-E-Mail wird verwendet.",
  "portal.memory_header": "Gesprächsgedächtnis",
  "portal.memory_desc": "Steuere, wie das System deine vergangenen Gespräche nutzt.",
  "portal.memory_prefer_fresh": "Neustart bei jeder Session (Fresh Start)",
  "portal.memory_prefer_fresh_hint": "Jede Unterhaltung beginnt ohne Zugriff auf frühere Sessions. Empfohlen für vertrauliche Themen.",
  "portal.memory_share_with_team": "Gesprächskontext mit Team teilen",
  "portal.memory_share_with_team_hint": "Deine Turns werden für Team-Mitglieder abrufbar gespeichert. Nur wirksam wenn das Template Cross-Session aktiviert hat.",
  "portal.my_templates_title": "Meine Experten-Templates",
  "portal.my_templates_desc": "Erstelle eigene Experten-Konfigurationen für die freigeschalteten Inferenz-Server. Du kannst diese Templates über deine API-Keys als <code>model</code>-Parameter verwenden.",
  "portal.admin_templates": "Vom Admin freigegebene Templates",
  "portal.admin_read_only": "Nur-Lesen — Kopie erstellen zum Anpassen",
  "portal.own_count": "{n} eigene(s) Template(s)",
  "portal.copy_btn": "Kopieren",
  "portal.no_user_templates": "Noch keine Templates angelegt.",
  "portal.deactivated": "Deaktiviert",
  "portal.my_cc_profiles": "Meine CC Profile",
  "portal.no_cc_profiles": "Noch keine CC Profile.",
  "portal.no_data_admin_hint": "Keine Nutzungsdaten für diesen Account. Admins: andere Nutzer über 'User-Verwaltung → Impersonieren' einsehen.",
  "portal.key_note": "Ein Key wird nur beim Erstellen einmalig angezeigt. Stelle sicher, dass du ihn kopierst.",
  "portal.display_name_hint": "Wie sollen wir dich nennen?",
  "portal.cc_profiles_desc": "Erstelle eigene Claude Code Profile basierend auf deinen freigeschalteten Inferenz-Servern. Jedes Profil ist sofort über deinen API-Key verfügbar.",
  "portal.btn_new_cc_profile": "Neues CC Profil",
  "portal.cc_default_badge": "Standard",
  "portal.cc_granted_badge": "Freigegeben",
  "portal.cc_edit_title": "CC Profil bearbeiten",
  "portal.cc_name_placeholder": "Mein CC Profil",
  "portal.tmpl_edit_title": "Template bearbeiten",
  "portal.tmpl_name_lbl": "Name",
  "portal.tmpl_name_placeholder": "Mein Template",
  "portal.tmpl_desc_lbl": "Beschreibung",
  "portal.tmpl_desc_placeholder": "Kurzbeschreibung",
  "portal.tmpl_overrides_lbl": "Optionale Modell-Overrides",
  "portal.tmpl_overrides_hint": "leer = globale Standardmodelle",
  "portal.tmpl_judge_model": "Judge-Modell",
  "portal.tmpl_planner_model": "Planner-Modell",
  "portal.tmpl_empty_default": "leer = Standard",
  "portal.tmpl_default": "Standard",
  "portal.tmpl_judge_prompt": "Judge-Prompt",
  "portal.tmpl_planner_prompt": "Planner-Prompt",
  "portal.tmpl_judge_prompt_ph": "Optionaler System-Prompt für den Judge/Merger…",
  "portal.tmpl_planner_prompt_ph": "Optionaler System-Prompt für den Planner…",
  "portal.tmpl_expert_cats": "Experten-Kategorien",
  "portal.tmpl_custom_cat": "Eigene Kategorie",
  "warn.medical_legal.title": "Medizinischer / Rechtlicher Experte aktiv",
  "warn.medical_legal.body": "Mindestens ein Experte in diesem Template verarbeitet medizinische oder rechtliche Anfragen. KI-generierte Antworten in diesen Bereichen ersetzen KEINE professionelle Beratung. Stellen Sie angemessene Zugriffskontrollen und minimale Datenspeicherfristen sicher. Eine Datenschutz-Folgenabschätzung (DSFA) kann erforderlich sein.",
  "footer.text": "Sovereign MoE Orchestrator — Admin UI",
  "footer.portal": "Sovereign MoE Portal",
  "wizard.title": "Ersteinrichtung",
  "wizard.done.flash": "Einrichtung abgeschlossen — Ihre MoE Sovereign Instanz ist bereit.",
  "wizard.step1.title": "Willkommen bei MoE Sovereign",
  "wizard.step1.body": "Bevor Sie das System nutzen können, muss mindestens ein LLM-Inferenzserver konfiguriert werden. Dieser Assistent führt Sie in wenigen Schritten durch die Mindesteinrichtung.",
  "wizard.step2.title": "Inferenzserver",
  "wizard.step2.hint": "Fügen Sie Ihren Ollama-, OpenAI-kompatiblen, LiteLLM- oder vLLM-Endpunkt hinzu. Weitere Server können später über die Konfiguration hinzugefügt werden.",
  "wizard.step3.title": "Kern-Modelle",
  "wizard.step3.hint": "Wählen Sie das Judge-Modell (Zusammenführung) und optional ein separates Planer-Modell von Ihren konfigurierten Servern.",
  "wizard.step4.title": "Öffentliche Zugriffsadressen",
  "wizard.step4.hint": "Optional — legen Sie Ihre öffentliche Domain fest, wenn Sie MoE Sovereign über einen Reverse-Proxy bereitstellen. Leer lassen für lokale Nutzung.",
  "wizard.btn.next": "Weiter",
  "wizard.btn.finish": "Dashboard öffnen",
  "wizard.btn.skip": "Überspringen",
  "quarantine.title": "Wissensgraph-Quarantäne",
  "quarantine.desc": "Triples mit hohem Blast-Radius (viele verbundene Entitäten) warten auf manuelle Prüfung bevor sie in Neo4j geschrieben werden.",
  "quarantine.subject": "Subjekt",
  "quarantine.relation": "Relation",
  "quarantine.object": "Objekt",
  "quarantine.reach": "Reichweite",
  "quarantine.source": "Quell-Modell",
  "quarantine.confidence": "Konfidenz",
  "quarantine.timestamp": "Zeitstempel",
  "quarantine.actions": "Aktionen",
  "quarantine.empty": "Keine Triples in Quarantäne. Alles in Ordnung!",
  "perm.graph_tenant": "Graph-Mandant",
  "perm.graph_tenant.help": "Steuert welche Neo4j-Wissensgraph-Partition der Nutzer sehen und beschreiben kann.",
  "tmpl.categories": "Kategorien",
  "tmpl.privacy.local": "Nur lokal",
  "tmpl.privacy.mixed": "Gemischt (externe APIs)",
  "tmpl.privacy.external": "Extern",
  "nav.teams": "Teams & Mandanten",
  "info.teams_desc": "Wissen hierarchisch organisieren: User → Team → Mandant → Global",
  "tab.teams": "Teams",
  "tab.tenants": "Mandanten",
  "tab.promote_knowledge": "Wissen promoten",
  "info.promote_desc": "Wissen aus einem Namespace in einen übergeordneten Namespace übertragen.",
  "label.from_namespace": "Von Namespace",
  "label.to_namespace": "Zu Namespace",
  "label.entity_filter": "Entitäten-Filter",
  "hint.optional_comma_sep": "kommagetrennt, optional",
  "btn.promote": "Promoten",
  "btn.create_team": "Team erstellen",
  "btn.create_tenant": "Mandant erstellen",
  "btn.add_member": "Mitglied hinzufügen",
  "btn.show_members": "Mitglieder anzeigen",
  "btn.budget": "Budget",
  "label.team_name": "Team-Name",
  "label.tenant_name": "Mandant-Name",
  "label.tenant_optional": "Mandant (optional)",
  "label.role": "Rolle",
  "opt.no_tenant": "Kein Mandant",
  "col.member": "Mitglied",
  "col.role": "Rolle",
  "empty.no_teams": "Noch keine Teams angelegt.",
  "empty.no_tenants": "Noch keine Mandanten angelegt.",
  "empty.no_members": "Keine Mitglieder",
  "state.loading": "Wird geladen...",
  "title.maintenance": "Wartung — MoE Admin",
  "title.benchmarks": "Benchmarks — MoE Admin",
  "js.active_servers": "aktive Server",
  "js.no_ontology_servers": "Keine Ontology-Server konfiguriert",
  "js.loading_error": "Fehler beim Laden",
  "js.no_output_since": "kein Output seit 5 min",
  "js.select_template_first": "Bitte ein Template auswählen.",
  "js.start_failed": "Start fehlgeschlagen",
  "js.start_error": "Fehler beim Starten",
  "js.healer_started_unverified": "Healer wurde gestartet, aber innerhalb von 15 s war kein aktiver Request im Live Monitoring sichtbar.\nBitte prüfe die Logs des Orchestrators und ob das Template korrekt konfiguriert ist.",
  "js.confirm_stop_healer": "Dedicated Healer stoppen?",
  "js.could_not_start": "Konnte nicht starten",
  "js.no_orphans_found": "Keine Altlasten gefunden. System sauber.",
  "js.active_servers_label": "Aktive Server:",
  "js.scanning": "Scanne…",
  "js.cleaning": "Bereinige…",
  "js.confirm_cleanup": "Cleanup ausführen? Templates mit DeadNode-Pins werden auf Fallback-Node repinned, verwaiste Curator-Templates gelöscht, Neo4j-Entities als deprecated markiert.",
  "js.checking": "Prüfe…",
  "js.regenerating_dashboard": "Regeneriere Dashboard…",
  "btn.save_short": "Speichern",
  "btn.now": "Jetzt",
  "js.never": "Noch nie",
  "lbl.checkpoint_archive": "Checkpoint-Archiv",
  "lbl.last_run": "Letzter Lauf",
  "lbl.duration": "Dauer",
  "lbl.freed": "Freigegeben",
  "lbl.total_runs": "Läufe gesamt",
  "lbl.job_active": "Job aktiv",
  "js.config_saved": "Konfiguration gespeichert",
  "lbl.live_db_rows": "Live-DB Zeilen behalten",
  "lbl.archive_retention": "Archiv-Retention (Tage)",
  "lbl.max_file_size": "Max Dateigröße (MB)",
  "lbl.backup_files": "Backup-Dateien",
  "lbl.max_storage": "Max Speicher (MB)",
  "lbl.retention_days": "Retention (Tage)",
  "msg.prometheus_restart_note": "Prometheus-Neustart erforderlich nach Änderung.",
  "btn.konfig": "Konfig",
  "js.job_started": "Job gestartet",
  "lbl.entries": "Einträge",
  "js.orphan_curator_templates": "Curator-Templates verwaist",
  "js.templates_deadnode_pin": "Templates mit @DeadNode pin",
  "js.user_templates_deadnode": "User-Templates mit DeadNode",
  "js.user_cc_profiles_deadnode": "User-CC-Profiles mit DeadNode",
  "js.valkey_keys": "Valkey-Keys",
  "js.neo4j_curator_entities": "Neo4j Curator-Entities",
  "js.pieces": "Stück",
  "js.prometheus_stale_targets": "Prometheus stale targets",
  "js.cleanup_done": "Cleanup abgeschlossen",
  "js.warnings": "Warnungen",
  "js.all_templates_ok_prefix": "Alle",
  "js.all_templates_ok_suffix": "Templates ok — alle Modelle physisch verfügbar.",
  "js.verified_prefix": "Geprüft",
  "js.with_issues": "mit Problemen",
  "js.problem": "Problem",
  "js.model_missing": "fehlt",
  "js.node_not_exist": "Node existiert nicht",
  "js.node_unreachable": "Node nicht erreichbar",
  "js.confirm_pull_missing": "Fehlende Modelle per Ollama pull nachladen? Das kann pro Modell mehrere Minuten dauern.",
  "js.pull_done": "Pull abgeschlossen",
  "js.dashboard_updated": "Dashboard aktualisiert.",
  "js.bench_running": "Benchmark läuft",
  "js.bench_system_locked": "Das System ist für reguläre API-Nutzer gesperrt.",
  "js.bench_start": "Benchmark starten",
  "js.overnight_runs": "Overnight-Läufe",
  "js.single_runs": "Einzel-Läufe",
  "js.runner_log": "Runner-Log",
  "js.waiting_for_log": "Warte auf Log-Daten…",
  "js.result": "Ergebnis",
  "js.preflight_not_checked": "Noch nicht geprüft. Klicke auf Prüfen vor dem Start.",
  "js.bench_template_placeholder": "z.B. moe-m10-gremium-deep",
  "js.epochs": "Epochen",
  "js.bench_info": "Der Benchmark läuft als Hintergrundprozess. Während er läuft, ist das System für reguläre API-Nutzer gesperrt. Bitte Pre-Flight-Check vor dem Start durchführen.",
  "js.start_now": "Jetzt starten",
  "js.no_log_available": "Kein Log verfügbar.",
  "js.load_error": "Fehler",
  "js.no_overnight_runs": "Keine Overnight-Läufe gefunden.",
  "js.no_single_runs": "Keine Einzel-Läufe gefunden.",
  "js.no_bench_active": "Kein aktiver Benchmark",
  "js.last_overnight_run": "Letzter Overnight-Lauf",
  "js.bench_is_running": "Läuft",
  "js.clear_lock_manual": "Lock manuell löschen",
  "js.epochs_summary": "Epochen (Eval-Daten)",
  "js.no_eval_data": "Noch keine Eval-Daten verfügbar.",
  "js.no_data": "Keine Daten.",
  "js.no_test_entries": "Keine Test-Einträge gefunden.",
  "js.total_duration": "Dauer gesamt",
  "js.tests": "Tests",
  "js.avg_score": "Ø Score",
  "js.test_id": "Test-ID",
  "js.score": "Score",
  "js.status_error": "Fehler",
  "js.status_timeout": "Timeout",
  "js.run_id": "Run-ID",
  "js.eval_file": "Eval-Datei",
  "js.confirm_delete_run": "Lauf wirklich löschen?",
  "js.deleted": "Gelöscht",
  "js.confirm_clear_lock": "Lock wirklich manuell löschen? Nur wenn der Prozess bereits beendet ist.",
  "js.lock_cleared": "Lock gelöscht.",
  "js.bench_started": "Benchmark gestartet",
  "js.trigger_written": "Trigger-Datei geschrieben — Host-Watcher wird den Benchmark starten.",
  "js.fill_all_fields": "Bitte alle Felder ausfüllen.",
  "js.starting": "Starte",
  "js.preflight_ready": "System bereit — Benchmark kann gestartet werden.",
  "js.preflight_fail": "Nicht alle Checks erfolgreich. Bitte prüfen.",
  "js.score_details": "Score-Details",
  "js.turn": "Turn",
  "js.report": "Report",
  "js.epoch": "Epoche",
  "js.epochs_overview": "Epochen-Übersicht",
  "js.graph_entities_delta": "Graph-Entities Δ",
  "js.cache_hit_rate": "Cache Hit Rate",
  "js.compressions": "Compressions",
  "js.lock_detail": "Lock-Detail",
  "js.team_deleted": "Team \"{name}\" gelöscht",
  "js.delete_error": "Fehler beim Löschen",
  "js.tenant_deleted": "Mandant \"{name}\" gelöscht",
  "js.confirm_delete_team": "Team \"{name}\" wirklich löschen?",
  "js.confirm_delete_tenant": "Mandant \"{name}\" wirklich löschen?",
  "lbl.daily_token_limit": "Tägliches Limit (Token, leer = kein Limit)",
  "js.member_added": "Mitglied hinzugefügt",
  "js.scope_global": "→ Global (öffentlich)",
  "js.n_entities": "{n} Entitäten",
  "js.entities_all": "alle",
  "js.entities_promoted": "Entitäten promoted:",
  "js.confirm_block_server": "Server \"{name}\" vollständig blockieren?\n\nDer Server wird aus allen Routing-Pools entfernt. Keine LLMs werden mehr geladen.\nDer Block ist sofort wirksam und bleibt nach Container-Neustart erhalten.",
  "js.models_available": "Modelle verfügbar",
  "js.mcp_server_unavail": "MCP-Server nicht erreichbar. Läuft der mcp-precision-Container?",
  "js.mcp_calls_log_note": "MCP Calls werden ab dem nächsten Container-Restart geloggt.",
  "js.entries_shown": "{shown} Einträge angezeigt, {total} Zeilen gesamt in tool_eval.jsonl",
  "js.confirm_delete_template": "Template \"{name}\" wirklich löschen?",
  "js.confirm_delete_cc_profile": "CC Profil \"{name}\" wirklich löschen?",
  "btn.close": "Schließen",
  "js.prometheus_reloading": "Prometheus wird neu geladen…",
  "js.prometheus_reloaded": "Prometheus neu geladen.",
  "js.gaia_runs": "GAIA-Läufe",
  "js.no_gaia_runs": "Keine GAIA-Läufe gefunden.",
  "js.gaia_started": "GAIA-Benchmark gestartet",
  "js.bench_type": "Benchmark-Typ",
  "js.bench_type_overnight": "Overnight (Multi-Epoche)",
  "js.bench_type_gaia": "GAIA (HuggingFace)",
  "js.gaia_levels": "Level",
  "js.gaia_max_per_level": "Max. Fragen pro Level",
  "js.gaia_question": "Frage",
  "js.gaia_expected": "Erwartet",
  "js.gaia_answer": "Antwort",
  "js.gaia_correct": "Korrekt",
  "js.gaia_level": "Level",
  "js.overall": "Gesamt",
  "js.correct_of": "von",
  "js.longmemeval_runs": "LongMemEval-Läufe",
  "js.no_longmemeval_runs": "Keine LongMemEval-Läufe gefunden.",
  "js.longmemeval_started": "LongMemEval-Benchmark gestartet",
  "js.bench_type_longmemeval": "LongMemEval (Gedächtnis)",
  "js.longmemeval_max_q": "Max. Fragen",
  "lbl.sa_benchmarks": "Service Account — Benchmarks & Gap Healer",
  "msg.sa_benchmarks_desc": "Template-Permissions des API-Keys aus",
  "msg.sa_benchmarks_note": "Nur hier gelistete Templates können von GAIA-Runner und Gap Healer verwendet werden.",
  "lbl.sa_add_template": "— Template hinzufügen —",
  "portal.sidebar.connections": "Eigene Verbindungen",
  "portal.my_connections_title": "Meine API-Verbindungen",
  "portal.my_connections_desc": "Private Inference-Endpunkte (OpenAI-kompatibel oder Ollama) hinterlegen. Den Verbindungsnamen als Endpunkt in eigenen Templates oder als <code>model@name</code> im nativen Modus verwenden.",
  "portal.btn_new_connection": "Neue Verbindung",
  "portal.conn_name_lbl": "Name (Handle)",
  "portal.conn_name_hint": "Kurzname 1–32 Zeichen, nur Buchstaben, Ziffern, _ oder -. Kann nachträglich nicht geändert werden.",
  "portal.conn_display_name_lbl": "Anzeigename",
  "portal.conn_url_lbl": "API-Basis-URL",
  "portal.conn_api_type_lbl": "API-Typ",
  "portal.conn_api_key_lbl": "API-Schlüssel",
  "portal.conn_api_key_hint": "Leer lassen, um den bestehenden Schlüssel zu behalten",
  "portal.conn_type_openai": "OpenAI-kompatibel",
  "portal.conn_type_ollama": "Ollama",
  "portal.conn_show_models": "Modelle",
  "portal.conn_models_count": "Modelle gecacht",
  "portal.conn_col_model": "Modell",
  "portal.conn_col_context": "Kontext",
  "portal.conn_col_size": "Größe",
  "portal.conn_no_models": "Keine Modelle gecacht — Aktualisieren klicken",
  "portal.conn_usage_hint": "In Templates: Endpunkt = <code>{name}</code> &nbsp;|&nbsp; Nativer Modus: <code>model@{name}</code>",
  "portal.btn_test_conn": "Testen",
  "portal.btn_refresh_models": "Modelle aktualisieren",
  "portal.conn_test_ok": "Verbunden",
  "portal.conn_test_fail": "Verbindung fehlgeschlagen",
  "portal.conn_name_conflict": "Name kollidiert mit einem globalen Servernamen",
  "js.confirm_delete_connection": "Verbindung wirklich löschen?",
  "btn.audit": "Audit",
  "btn.refresh_ext_audits": "Ext. Audits aktualisieren",
  "info.skillssh_audit": "skills.sh Bewertung",
  "js.audit_complete": "Audit abgeschlossen: {verdict}",
  "js.audit_required": "Bitte zuerst ein Audit durchführen",
  "section.endpoint_availability": "Endpunkt-Verfügbarkeit (24h)",
  "section.endpoint_budget": "API-Endpunkt Budget",
  "info.backup_before_import": "Alle aktuellen Templates als JSON sichern",
  "dialog.import_mode_question": "Was soll bei gleichem Namen passieren?",
  "dialog.import_merge_title": "Nur neue hinzufügen",
  "dialog.import_merge_desc": "Vorhandene Einträge bleiben unverändert",
  "dialog.import_replace_title": "Vorhandene überschreiben",
  "dialog.import_replace_desc": "Einträge mit gleichem Namen werden ersetzt",
  "lbl.pipeline_log": "Pipeline Log",
  "lbl.complexity": "Komplexität",
  "lbl.from": "Von",
  "lbl.to": "Bis",
  "lbl.limit": "Limit",
  "lbl.requested_at": "Zeitpunkt",
  "lbl.last_24h": "Letzte 24 Stunden",
  "starfleet_features": "Starfleet-Funktionen",
  "feature": "Funktion",
  "source": "Quelle",
  "action": "Aktion",
  "enable": "Aktivieren",
  "disable": "Deaktivieren",
  "feat_watchdog": "Proaktiver Watchdog",
  "feat_mission_context": "Missions-Kontext",
  "feat_adaptive_ui": "Adaptives Dashboard",
  "feat_infra_mcp": "Infra-MCP-Tools",
  "mission_context": "Missions-Kontext",
  "open_tasks": "Offene Aufgaben",
  "recent_decisions": "Letzte Entscheidungen",
  "watchdog_alerts": "Watchdog-Meldungen",
  "nominal": "Nominal",
  "no_alerts": "Keine Meldungen — System nominal",
  "watchdog_config": "Watchdog-Konfiguration",
  "loading": "Laden",
  "down_threshold": "Down-Schwellwert (Zyklen)",
  "down_threshold_hint": "Anzahl aufeinander folgender Ausfälle bis zum Alert",
  "vram_threshold_pct": "VRAM-Schwellwert (%)",
  "vram_threshold_hint": "Auslastung ab der ein VRAM_HIGH-Alert ausgelöst wird",
  "stuck_minutes": "Benchmark-Stuck-Limit (Min.)",
  "stuck_minutes_hint": "Inaktive Requests nach dieser Zeit lösen einen Alert aus",
  "email_escalation": "E-Mail-Eskalation",
  "email_escalation_enabled": "Eskalations-Mails aktivieren",
  "escalation_to": "Empfänger-Adresse",
  "escalation_cooldown": "Cooldown (Min.)",
  "cooldown_hint": "Mindestabstand zwischen zwei Mails für denselben Alert",
  "escalation_severities": "Schweregrade eskalieren",
  "save": "Speichern",
  "send_test_mail": "Test-Mail senden",
  "btn.open": "Öffnen",
  "nav.codex": "MoE Codex ↗",
  "nav.enterprise": "Codex",
  "nav.codex_platform":     "Plattform",
  "nav.codex_bi":           "BI & Analyse",
  "nav.codex_investigation":"Ermittlung",
  "nav.codex_pipelines":    "Pipelines & Inhalte",
  "nav.codex_security":     "Sicherheit",
  "page.enterprise": "Codex",
  "section.lineage_runs": "Aktuelle Lineage-Runs (Marquez)",
  "status.healthy": "Gesund",
  "status.degraded": "Beeinträchtigt",
  "status.down": "Nicht erreichbar",
  "lbl.url": "URL",
  "lbl.latency": "Latenz",
  "lbl.reachable": "Erreichbar",
  "lbl.job": "Job",
  "lbl.run_id": "Run-ID",
  "lbl.state": "Status",
  "lbl.started_at": "Gestartet",
  "lbl.enterprise_not_configured": "moe-codex ist nicht verbunden — CODEX_URL in .env setzen und moe-codex deployen.",
  "lbl.marquez_not_configured": "Noch keine Lineage-Runs aufgezeichnet — Pipelines ausführen um OpenLineage-Events zu erzeugen.",
  "lbl.lakefs_not_configured": "Noch keine Bundle-Versionen vorhanden — Knowledge-Import über moe-codex durchführen.",
  "section.bundle_versions": "Knowledge-Bundle-Versionen (lakeFS)",
  "lbl.commit": "Commit",
  "lbl.message": "Nachricht",
  "lbl.author": "Autor",
  "lbl.committed_at": "Committed am",
  "section.etl_pipeline": "ETL-Pipeline (NiFi)",
  "lbl.version": "Version",
  "lbl.uptime": "Laufzeit",
  "lbl.threads": "Threads",
  "lbl.heap": "Heap",
  "lbl.ingest": "Ingest",
  "nav.catalog": "Katalog",
  "page.catalog": "Daten-Katalog",
  "lbl.search_filter": "Nach Name, Typ oder Domain filtern...",
  "lbl.all_sources": "Alle Quellen",
  "lbl.type": "Typ",
  "lbl.size": "Größe",
  "lbl.domain": "Domäne",
  "nav.approval": "Freigaben",
  "page.approval": "Knowledge-Bundle-Freigaben",
  "lbl.approval_intro": "Bundles auf lakeFS pending-Branches. Source-Tag und Entity-Anzahl prüfen, bevor sie in den Live-Graph gemergt werden.",
  "lbl.branch": "Branch",
  "lbl.source_tag": "Source-Tag",
  "lbl.entities": "Entitäten",
  "lbl.submitted_at": "Eingereicht",
  "lbl.actions": "Aktionen",
  "btn.approve": "Freigeben",
  "btn.reject": "Ablehnen",
  "lbl.no_pending": "Keine offenen Bundles.",
  "lbl.confirm_approve": "Bundle freigeben und in den Knowledge-Graph mergen?",
  "lbl.confirm_reject": "Pending-Branch ablehnen und löschen?",
  "lbl.approving": "Freigabe läuft",
  "lbl.rejecting": "Ablehnung läuft",
  "lbl.rejected": "abgelehnt",
  "section.data_health": "Daten-Gesundheit (Drift-Ereignisse)",
  "lbl.severity": "Schweregrad",
  "lbl.declared_entities": "Deklariert",
  "lbl.delta_entities": "Δ Entitäten",
  "lbl.delta_relations": "Δ Relationen",
  "lbl.flags": "Flags",
  "nav.explorer": "Explorer",
  "page.explorer": "Object Explorer",
  "lbl.open_neo4j_browser": "Neo4j Browser öffnen",
  "lbl.explorer_readonly_notice": "Read-only Cypher-Endpoint. Schreib-Keywords (CREATE / DELETE / SET / MERGE / REMOVE / DROP) werden vor der DB verworfen.",
  "lbl.cypher_query": "Cypher-Abfrage",
  "lbl.preset_select": "— Preset —",
  "lbl.preset_top_entities": "Top-Entitäten nach Trust",
  "lbl.preset_domains": "Domain-Verteilung",
  "lbl.preset_schema": "Schema-Visualisierung",
  "lbl.preset_recent": "Neueste Entitäten",
  "btn.run_query": "Ausführen",
  "lbl.no_query_run": "Noch keine Abfrage ausgeführt",
  "lbl.running": "Läuft",
  "lbl.error": "Fehler",
  "lbl.row": "Zeile",
  "lbl.rows": "Zeilen",
  "lbl.limit_reached": "Limit erreicht",
  "nav.notebook": "Notebook",
  "page.notebook": "Notebook (JupyterLab)",
  "page.link_analysis": "Netzwerkanalyse",
  "page.timeline": "Zeitleiste",
  "page.kestra": "Pipeline Builder",
  "page.forms": "Dynamische Formulare",
  "page.search": "Föderierte Suche",
  "page.charts": "Charts & Pivot",
  "page.superset": "Analytics / BI",
  "page.compliance": "Compliance-Status",
  "page.geo":        "Geodaten",
  "page.timeseries": "Zeitreihen",
  "page.notes":      "Notizen & Berichte",
  "page.workshop":   "Workshop",
  "page.dossier":    "Fallakte",
  "lbl.notebook_intro": "JupyterLab läuft als Server-Container mit vollem Python-Kernel und allen Data-Science-Paketen. Mit den Snippets unten rufst du die Orchestrator-API direkt aus einer Notebook-Zelle auf.",
  "lbl.snippets": "Snippets",
  "lbl.copy_paste_snippets": "Bereit zum Copy-Paste",
  "lbl.snippet_export": "Export",
  "lbl.snippet_import": "Import (pending)",
  "lbl.snippet_search": "Suche",
  "lbl.snippet_cypher": "Cypher",
  "lbl.snippet_runs": "Lineage-Runs",
  "lbl.open_full_window": "In neuem Tab öffnen",
  "nav.token_timeline": "Token-Timeline",
  "lbl.tt_session": "Session",
  "lbl.tt_tokens": "Tokens",
  "lbl.tt_template": "Template",
  "lbl.tt_no_data": "Keine Daten",
  "lbl.tt_1d": "Letzte 24 Std.",
  "lbl.tt_7d": "Letzte 7 Tage",
  "lbl.tt_30d": "Letzte 30 Tage",
  "lbl.tt_90d": "Letzte 90 Tage",
  "lbl.perm_cleanup": "Berechtigungs-Cleanup",
  "msg.perm_cleanup_desc": "Prüft und entfernt model_endpoint-Berechtigungen, die auf nicht mehr konfigurierte Inferenz-Server verweisen.",
  "btn.perm_cleanup_run": "Berechtigungen bereinigen",
  "msg.perm_cleanup_click_scan": "Auf \"Scannen\" klicken, um veraltete Einträge zu finden.",
  "js.no_stale_permissions": "Keine veralteten Berechtigungen gefunden. System bereinigt.",
  "js.stale_permissions_found": "veraltete Berechtigung(en) gefunden",
  "js.confirm_perm_cleanup": "Alle veralteten model_endpoint-Berechtigungen löschen? Dieser Vorgang kann nicht rückgängig gemacht werden.",
  "js.perm_cleanup_done": "Gelöschte Berechtigungen",
  "lbl.template_ref_cleanup": "Template-Referenz-Bereinigung",
  "msg.template_ref_cleanup_desc": "Prüft alle CC-Profile auf veraltete expert_template_id-Verweise, die auf nicht mehr vorhandene Admin- oder Benutzer-Templates zeigen, und bereinigt diese.",
  "btn.template_ref_scan": "Referenzen scannen",
  "btn.template_ref_cleanup": "Veraltete bereinigen",
  "msg.template_ref_click": "Auf \"Referenzen scannen\" klicken, um veraltete Template-Verweise zu finden.",
  "js.no_stale_template_refs": "Keine veralteten Template-Referenzen gefunden. System bereinigt.",
  "js.stale_template_refs_found": "veraltete Template-Referenz(en) gefunden",
  "js.confirm_template_ref_cleanup": "Veraltete expert_template_id-Einträge werden aus CC-Profilen gelöscht und der Benutzercache invalidiert. Fortfahren?",
  "js.template_ref_cleanup_done": "Template-Referenzen bereinigt",

  "portal.sidebar.audit_log": "Audit Log",
  "portal.audit_log.title": "Mein Audit Log",
  "portal.audit_log.subtitle": "Verlauf deiner Anfragen und Antworten",
  "portal.audit_log.col_time": "Zeit",
  "portal.audit_log.col_model": "Modell",
  "portal.audit_log.col_mode": "Modus",
  "portal.audit_log.col_prompt": "Anfrage",
  "portal.audit_log.col_tokens": "Tokens",
  "portal.audit_log.col_latency": "Latenz",
  "portal.audit_log.empty": "Noch keine Einträge. Anfragen werden hier protokolliert sobald du die API nutzt.",
  "portal.audit_log.search_placeholder": "Suche in Anfragen und Antworten…",
  "portal.audit_log.date_from": "Von",
  "portal.audit_log.date_to": "Bis",
  "portal.audit_log.btn_reset": "Zurücksetzen",
  "portal.audit_log.btn_export_csv": "CSV Export",
  "portal.audit_log.btn_export_json": "JSON Export",
  "portal.audit_log.modal_prompt": "Anfrage",
  "portal.audit_log.modal_response": "Antwort",
  "portal.audit_log.modal_meta": "Metadaten",
  "portal.audit_log.btn_copy": "Kopieren",
  "portal.audit_log.retention_title": "Aufbewahrungsdauer",
  "portal.audit_log.retention_label": "Logs behalten für",
  "portal.audit_log.retention_days": "Tage",
  "portal.audit_log.retention_save": "Speichern",
  "portal.audit_log.retention_hint": "Maximale Aufbewahrungsdauer: {max} Tage. Ältere Dateien werden täglich gelöscht.",
  "portal.audit_log.disabled": "Audit-Logging ist deaktiviert.",
  "skill.detect.xlsx": "excel,tabelle,spreadsheet,kalkulation,xlsx,xls,tabellendokument,tabelle erstellen,tabelle anlegen,tabelle generieren,excel-tabelle,excel-datei,xls-datei",
  "skill.detect.docx": "word,dokument,docx,word-dokument,word-datei,brief,bericht,textdokument",
  "skill.detect.pptx": "powerpoint,präsentation,folie,slides,pptx,slideshow,slide deck,vortrag,präsentation erstellen",
  "skill.detect.web": "webseite erstellen,website erstellen,html-seite,web-app erstellen,browser-spiel,browser-app,html erstellen,webseite bauen,webapp",
  "skill.detect.pdf": "pdf erstellen,pdf generieren,als pdf,pdf ausgabe,pdf exportieren"
}