{
  "knxUltimateAI": {
    "title": "KNX AI (Traffic Analyzer)",
    "sections": {
      "capture": "Capture",
      "analysis": "Analysis",
      "anomalies": "Anomalies",
      "llm": "LLM Assistant"
    },
    "properties": {
      "server": "Gateway",
      "name": "Name",
      "topic": "Topic",
      "notifywrite": "Capture GroupValue_Write",
      "notifyresponse": "Capture GroupValue_Response",
      "notifyreadrequest": "Capture GroupValue_Read",
      "analysisWindowSec": "Analysis window (seconds)",
      "historyWindowSec": "History window (seconds)",
      "maxEvents": "Max stored events",
      "emitIntervalSec": "Auto emit summary (seconds, 0=off)",
      "topN": "Top list size",
      "enablePattern": "Detect simple patterns (A -> B)",
      "patternMaxLagMs": "Pattern max lag (ms)",
      "patternMinCount": "Pattern min occurrences",
      "rateWindowSec": "Rate window (seconds)",
      "maxTelegramPerSecOverall": "Max overall telegrams/sec (0=off)",
      "maxTelegramPerSecPerGA": "Max telegrams/sec per GA (0=off)",
      "flapWindowSec": "Flap window (seconds)",
      "flapMaxChanges": "Max changes per GA in window (0=off)",
      "llmEnabled": "Enable LLM assistant",
      "llmProvider": "Provider",
      "llmBaseUrl": "Endpoint URL",
      "llmApiKey": "API key",
      "llmModel": "Model",
      "llmSystemPrompt": "System prompt",
      "llmTemperature": "Temperature",
      "llmMaxTokens": "Max tokens",
      "llmTimeoutMs": "Timeout (ms)",
      "llmMaxEventsInPrompt": "Recent events included",
      "llmIncludeRaw": "Include raw payload hex",
      "llmIncludeFlowContext": "Include Node-RED KNX node inventory",
      "llmMaxFlowNodesInPrompt": "Max flow nodes included",
      "llmIncludeDocsSnippets": "Include documentation snippets (help/README/examples)",
      "llmDocsLanguage": "Docs language",
      "llmDocsMaxSnippets": "Max docs snippets",
      "llmDocsMaxChars": "Max docs chars"
    },
    "outputs": {
      "summary": "Zusammenfassung/Statistik",
      "anomalies": "Anomalien",
      "assistant": "KI-Assistent"
    },
    "selectlists": {
      "llmProvider": {
        "openai_compat": "OpenAI-compatible (chat/completions)",
        "ollama": "Ollama (local) - not yet supported"
      }
    },
    "placeholder": {
      "llmBaseUrl": "https://api.openai.com/v1/chat/completions (or your compatible endpoint)",
      "llmApiKey": "Paste API key (starts with sk-)",
      "llmModel": "e.g. gpt-4o-mini",
      "llmSystemPrompt": "Optional. Leave empty for default."
    },
    "messages": {
      "ollamaNotSupported": "Ollama integration is marked as not yet supported (testing in progress)."
    },
    "sidebar": {
      "ui": {
        "refreshNodeList": "Knotenliste aktualisieren",
        "refreshSummary": "Zusammenfassung aktualisieren",
        "auto": "Auto",
        "sections": {
          "summary": "Zusammenfassung",
          "anomalies": "Anomalien",
          "ask": "Fragen"
        },
        "empty": {
          "noNodes": "Keine KNX AI-Knoten gefunden.",
          "noAnomalies": "Keine Anomalien."
        },
        "chat": {
          "placeholder": "Stelle eine Frage zum KNX-Verkehr…",
          "send": "Senden",
          "pending": "Ich denke nach…",
          "llmDisabled": "LLM in der Knoten-Konfiguration deaktiviert",
          "emptyAnswer": "(leere Antwort)"
        },
        "status": {
          "ready": "Bereit",
          "loadingNodes": "Lade Knoten…",
          "loading": "Laden…",
          "asking": "Frage…"
        },
        "errors": {
          "loadNodes": "Knoten konnten nicht geladen werden",
          "loadState": "Status konnte nicht geladen werden",
          "askFailed": "Anfrage fehlgeschlagen"
        }
      },
      "summary": {
        "noData": "Keine Daten verfügbar.",
        "header": {
          "gateway": "Gateway: {{gatewayName}}",
          "updated": "Aktualisiert: {{at}}"
        },
        "analysisWindowLine": "Analysefenster: {{seconds}}s",
        "statsLine": "Telegramme: {{telegrams}} · Rate: {{rate}}/s · Echoed: {{echoed}} · Unbekannte DPT: {{unknownDpt}}",
        "topGAsTitle": "Top-Gruppenadressen:",
        "eventsTitle": "Ereignisse:",
        "patternsTitle": "Muster (wiederkehrende Sequenzen):",
        "patternItem": "{{from}} → {{to}}  ({{count}} mal innerhalb von {{withinMs}}ms)"
      }
    }
  }
}
