{ "@@locale": "de", "appTitle": "F∆I Studio", "navDoctor": "Diagnose", "navModules": "Module", "navStore": "Store", "navFlows": "Flows", "navAudit": "Protokoll", "navApprovals": "Freigaben", "connectionConnected": "verbunden", "connectionUnreachable": "nicht erreichbar", "connectionConnecting": "verbinde…", "connectionStartHub": "Hub starten", "buttonCancel": "Abbrechen", "buttonSave": "Speichern", "buttonClose": "Schließen", "buttonRetry": "Erneut versuchen", "buttonRefresh": "Aktualisieren", "buttonInstall": "Installieren", "buttonUninstall": "Deinstallieren", "buttonDetails": "Details", "buttonAdd": "Hinzufügen", "buttonRemove": "Entfernen", "buttonOpen": "Öffnen", "buttonExplain": "Erklären", "buttonReadDocs": "Doku öffnen", "buttonCopy": "In Zwischenablage kopieren", "buttonCopied": "Kopiert", "settingsTitle": "Hub-Endpunkt", "settingsHost": "Host", "settingsPort": "Port", "settingsTls": "TLS", "settingsSaveAndConnect": "Speichern & verbinden", "settingsLanguage": "Sprache", "settingsLanguageHint": "Sprache der App. Wirkt auf alle Seiten; mehrsprachige Store-Einträge folgen ebenfalls.", "settingsHubEndpointHint": "Wohin soll Studio sich verbinden? Standard ist der lokale Hub auf 127.0.0.1:50051.", "settingsTlsSubtitle": "https/grpc-secure", "settingsPortError": "Port muss 1–65535 sein", "channelsBlurb": "Hub-Kanal wechseln (schreibt ~/.fai/current-channel und startet den Daemon neu). Verbinden ändert nur die Wire von Studio.", "channelsActionsTooltip": "Kanal-Aktionen", "systemAiHeader": "SYSTEM-AI", "systemAiEnabled": "aktiv", "systemAiOff": "aus", "systemAiEdit": "Bearbeiten…", "systemAiConfigure": "Konfigurieren…", "systemAiOffBlurb": "Aus — Fehlererklärungen auf der Protokoll-Seite sind deaktiviert. Klicke Konfigurieren…, um einen Provider zu wählen (Ollama / OpenAI / LM Studio / vLLM / Eigene). Die Operator-Konfig wird direkt überschrieben; kein Daemon-Neustart nötig.", "mcpServersCount": "{n} {n, plural, =1{Server} other{Server}}", "@mcpServersCount": { "placeholders": { "n": { "type": "int" } } }, "mcpRediscoverTooltip": "Discovery neu ausführen", "mcpAddTooltip": "MCP-Server hinzufügen", "mcpRemoveTooltip": "Server entfernen", "mcpToolsCount": "{n} Tools", "@mcpToolsCount": { "placeholders": { "n": { "type": "int" } } }, "n8nEndpointsCount": "{n} {n, plural, =1{Endpunkt} other{Endpunkte}}", "@n8nEndpointsCount": { "placeholders": { "n": { "type": "int" } } }, "n8nWorkflowsCount": "{n} Workflows", "@n8nWorkflowsCount": { "placeholders": { "n": { "type": "int" } } }, "n8nRediscoverTooltip": "Discovery neu ausführen", "n8nAddTooltip": "n8n-Endpunkt hinzufügen", "n8nRemoveTooltip": "Endpunkt entfernen", "addMcpTitle": "MCP-Server hinzufügen", "addMcpIntro": "Tools, die der Server via `tools/list` anbietet, erscheinen im Store als `mcp..`-Fähigkeiten.", "addMcpSuggestionsLabel": "Vorschläge — zum Vorausfüllen klicken", "addMcpNameLabel": "Name (keine Punkte)", "addMcpNameHint": "filesystem", "addMcpEndpointLabel": "Endpunkt", "addMcpEndpointHint": "http://127.0.0.1:3001/mcp", "addMcpApiKeyLabel": "API-Key-Umgebungsvariable (optional)", "addMcpApiKeyHint": "MCP_FILESYSTEM_TOKEN", "addMcpNotesLabel": "Notizen (optional)", "addMcpAddButton": "Hinzufügen + Discovery", "addN8nTitle": "n8n-Endpunkt hinzufügen", "addN8nIntro": "Aktive Workflows erscheinen im Store als `n8n..`-Fähigkeiten.", "addN8nNameLabel": "Name (keine Punkte)", "addN8nNameHint": "ops", "addN8nBaseUrlLabel": "Basis-URL (ohne /api/v1)", "addN8nBaseUrlHint": "https://n8n.example.com", "addN8nApiKeyLabel": "API-Key-Umgebungsvariable (optional)", "addN8nApiKeyHint": "N8N_OPS_KEY", "addN8nNotesLabel": "Notizen (optional)", "addN8nAddButton": "Hinzufügen + Discovery", "addedMcpToast": "MCP-Server „{name}\" hinzugefügt.", "@addedMcpToast": { "placeholders": { "name": { "type": "String" } } }, "addedN8nToast": "n8n-Endpunkt „{name}\" hinzugefügt.", "@addedN8nToast": { "placeholders": { "name": { "type": "String" } } }, "addFailedToast": "Hinzufügen fehlgeschlagen: {error}", "@addFailedToast": { "placeholders": { "error": { "type": "String" } } }, "removeFailedToast": "Entfernen fehlgeschlagen: {error}", "@removeFailedToast": { "placeholders": { "error": { "type": "String" } } }, "refreshFailedToast": "Aktualisieren fehlgeschlagen: {error}", "@refreshFailedToast": { "placeholders": { "error": { "type": "String" } } }, "channelsHeader": "KANÄLE", "channelsActive": "aktiv", "channelsRunning": "läuft", "channelsStopped": "gestoppt", "channelsConnect": "Studio mit diesem Kanal verbinden", "channelsSwitch": "Diesen Kanal aktivieren", "channelsEnableAutostart": "Autostart bei Anmeldung aktivieren", "channelsDisableAutostart": "Autostart deaktivieren", "storeSearchHint": "Module suchen — Name, Tagline, Tag, Fähigkeit…", "storeAskHint": "Was brauchst du? Versuch's mit „ein Modul, das tabellarische Daten liest\" oder tippe einfach einen Begriff.", "storeAskSubmit": "Suchen", "storeAskAi": "KI fragen", "storeAskClear": "Frage zurücksetzen", "storeAskAiThinking": "Module werden durchsucht…", "storeAskAiUnavailable": "Konfiguriere eine System-AI in den Einstellungen, um Fragen in normaler Sprache zu stellen.", "storeAskNoMatches": "Keine Treffer — Frage verfeinern oder im Grid unten stöbern.", "storeAskAnswerLabel": "KI-Vorschlag", "storeAskAnswerWhy": "Warum es passt", "storeAskMatchPill": "Treffer", "storeFilterLabel": "Filter", "storeFilterActiveCount": "{n} aktiv", "@storeFilterActiveCount": { "placeholders": { "n": { "type": "int" } } }, "storeFilterReset": "Filter zurücksetzen", "storeFilterApply": "Fertig", "storeFilterStatusGroup": "Status", "storeFilterSourceGroup": "Quelle", "storeFilterInstalledGroup": "Nur installierte zeigen", "storeFeatured": "EMPFOHLEN", "storeFeaturedHint": "kuratierte Auswahl · klicken für Details", "storeNoMatches": "Keine Treffer", "storeNoMatchesHint": "Filter anpassen oder Suche leeren, um alle Einträge zu sehen.", "storeClearFilters": "Filter zurücksetzen", "storeStatusAll": "Alle", "storeStatusPublished": "stabil", "storeStatusAlpha": "experimentell", "storeStatusPlanned": "geplant", "storeInstalledOnly": "Installiert", "storeCategoryLabel": "Kategorie", "storeCategoryAll": "Alle Kategorien", "storeCategoryBridge": "Verbindungen", "storeCategoryDebug": "Beispiele", "storeCategoryText": "Text", "storeCategoryLlm": "KI-Modelle", "storeCategorySystem": "System", "storeCategoryAuth": "Authentifizierung", "storeCategoryStorage": "Speicher", "storeCategoryChannel": "Kanäle", "storeCategoryWeb": "Web", "storeCategoryOrchestrator": "Orchestrierung", "storeNResults": "{n} Treffer", "@storeNResults": { "placeholders": { "n": { "type": "int" } } }, "storeReloadTooltip": "Aktualisieren", "storeTodayBadge": "HEUTE", "storeTodayDeck": "Von der F∆I-Redaktion", "storeTodayDismissTooltip": "Für diese Sitzung ausblenden", "storePillInstalled": "installiert", "storePillUpdate": "Update", "storeUpdateButton": "Update auf {version}", "@storeUpdateButton": { "placeholders": { "version": { "type": "String" } } }, "storeUpdateTooltip": "Installiert {installed} — Store bietet v{best}", "@storeUpdateTooltip": { "placeholders": { "installed": { "type": "String" }, "best": { "type": "String" } } }, "storeNoTagline": "(keine Beschreibung)", "storeUninstallTitle": "Modul deinstallieren?", "storeUninstallBody": "Entfernt {name} aus diesem Hub. Flows, die es verwenden, schlagen beim nächsten Lauf fehl.", "@storeUninstallBody": { "placeholders": { "name": { "type": "String" } } }, "storeInstalledToast": "{name} v{version} installiert.", "@storeInstalledToast": { "placeholders": { "name": { "type": "String" }, "version": { "type": "String" } } }, "storeInstallFailedToast": "Installation fehlgeschlagen: {error}", "@storeInstallFailedToast": { "placeholders": { "error": { "type": "String" } } }, "storeUninstalledToast": "{name} v{version} deinstalliert.", "@storeUninstalledToast": { "placeholders": { "name": { "type": "String" }, "version": { "type": "String" } } }, "storeUninstallFailedToast": "Deinstallation fehlgeschlagen: {error}", "@storeUninstallFailedToast": { "placeholders": { "error": { "type": "String" } } }, "storeOpenBrowserFailed": "Browser konnte nicht geöffnet werden: {error}", "@storeOpenBrowserFailed": { "placeholders": { "error": { "type": "String" } } }, "storeSectionTags": "Tags", "storeSectionRequiredCapabilities": "Erforderliche Fähigkeiten", "storeSectionRequiredHostServices": "Erforderliche Host-Dienste", "storeSectionScreenshots": "Screenshots", "storeSectionDocumentation": "Dokumentation", "storeSectionSource": "Quelle", "storeInstallingButton": "Installiere…", "storeNotInstallable": "Nicht installierbar", "storeNotInstallableTooltip": "Status „{status}\" — Installations-Pfad noch nicht verdrahtet.", "@storeNotInstallableTooltip": { "placeholders": { "status": { "type": "String" } } }, "storeInstallProgressTitle": "Installation von {name}", "@storeInstallProgressTitle": { "placeholders": { "name": { "type": "String" } } }, "storeInstallProgressBody": "Holen, verifizieren, entpacken…", "storeLoadDocs": "Dokumentation laden", "storeDocsHint": "README inline gerendert; nutzt das Registry-Token des Hubs, falls nötig.", "storeDocsFetching": "README wird geladen…", "storeOpenRepoButton": "Repository im Browser öffnen", "storeDocsErrorNotFound": "Dieses Modul ist nicht im Store-Index des Hubs enthalten.", "storeDocsErrorNoDocs": "Für dieses Modul ist keine Repository-URL hinterlegt.", "storeDocsErrorAuth": "Die Registry erfordert Authentifizierung, um dieses README zu laden. Setze FAI_REGISTRY_TOKEN in der Umgebung des Daemons und starte den Hub neu.", "storeDocsErrorNetwork": "Netzwerkfehler beim Laden des README. {detail}", "@storeDocsErrorNetwork": { "placeholders": { "detail": { "type": "String" } } }, "storeDocsErrorParse": "README ist kein gültiges UTF-8.", "storeDocsErrorGeneric": "README konnte nicht geladen werden.", "storeSourceLabel": "Quelle", "storeSourceAll": "Alle Quellen", "storeSourceNative": "Nativ", "storeSourceMcp": "MCP", "storeSourceN8n": "n8n", "storeProvenanceNative": "nativ", "storeProvenanceMcp": "mcp · {provider}", "@storeProvenanceMcp": { "placeholders": { "provider": { "type": "String" } } }, "storeProvenanceN8n": "n8n · {provider}", "@storeProvenanceN8n": { "placeholders": { "provider": { "type": "String" } } }, "storeRecommendedTitle": "Öffentliche Quelle hinzufügen — ein Klick", "storeRecommendedBody": "Kuratierte MCP-Server über HTTPS erreichbar. Kein Subprozess, kein API-Key, kein Node. Föderierte Fähigkeiten erscheinen sofort im Store.", "storeRecommendedAddTooltip": "Hinzufügen und entdecken", "storeRecommendedAdding": "Wird hinzugefügt…", "storeRecommendedDeepWikiTagline": "GitHub-Repo-Doku-Suche (KI-gestützt)", "storeRecommendedSemgrepTagline": "Security-Scanning für Code-Schwachstellen", "storeProviderAddedToast": "{name} hinzugefügt — {n} {n, plural, =1{föderierte Fähigkeit} other{föderierte Fähigkeiten}}.", "@storeProviderAddedToast": { "placeholders": { "name": { "type": "String" }, "n": { "type": "int" } } }, "storeProviderAddedZeroToast": "{name} ist eingetragen, aber der Server hat noch keine Fähigkeiten geliefert. Öffne Einstellungen → MCP-Clients, um Discovery erneut zu versuchen oder den Server zu prüfen.", "@storeProviderAddedZeroToast": { "placeholders": { "name": { "type": "String" } } }, "storeProviderAddFailed": "{name} konnte nicht hinzugefügt werden: {error}", "@storeProviderAddFailed": { "placeholders": { "name": { "type": "String" }, "error": { "type": "String" } } }, "auditTitle": "Protokoll", "auditNoEvents": "Noch keine Ereignisse", "auditNoEventsHint": "Starte einen Flow, um den Audit-Stream zu füllen.\nEreignisse erscheinen innerhalb von Sekunden.", "auditFilterAll": "alle", "auditFilterFlow": "Flow", "auditFilterStep": "Step", "auditFilterModule": "Modul", "auditClearLogTooltip": "Protokoll löschen (nur local/dev Kanal)", "auditClearedToast": "{n} Ereignisse auf Kanal „{channel}\" gelöscht. Kette mit Marker neu geseedet.", "@auditClearedToast": { "placeholders": { "n": { "type": "int" }, "channel": { "type": "String" } } }, "auditClearFailed": "Löschen fehlgeschlagen: {detail}", "@auditClearFailed": { "placeholders": { "detail": { "type": "String" } } }, "auditExplain": "Erklären", "auditReask": "Neu fragen", "auditAsking": "Frage läuft…", "auditSystemAi": "SYSTEM-AI", "auditCachedPill": "gecacht", "auditOriginalLatency": "ursprünglich {ms} ms", "@auditOriginalLatency": { "placeholders": { "ms": { "type": "int" } } }, "auditLatency": "{ms} ms", "@auditLatency": { "placeholders": { "ms": { "type": "int" } } }, "auditRegenerateTooltip": "Neu generieren — Cache überspringen, Modell erneut fragen", "auditLiveStatus": "live · Abfrage alle 2s · {n} {n, plural, =1{Ereignis} other{Ereignisse}}", "@auditLiveStatus": { "placeholders": { "n": { "type": "int" } } }, "auditDisconnected": "getrennt · {error}", "@auditDisconnected": { "placeholders": { "error": { "type": "String" } } }, "auditHashChainVerified": "Hash-Kette verifiziert", "auditDetailHeader": "DETAIL", "auditAskingFull": "Frage an die konfigurierte System-AI läuft…", "auditFixLabel": "FIX", "auditCachedTooltipKnown": "Aus dem lokalen Cache geliefert. Ursprünglich erzeugt am {at}{hits}.", "@auditCachedTooltipKnown": { "placeholders": { "at": { "type": "String" }, "hits": { "type": "String" } } }, "auditCachedTooltipUnknown": "Aus dem lokalen Cache geliefert. Ursprünglicher Zeitpunkt unbekannt{hits}.", "@auditCachedTooltipUnknown": { "placeholders": { "hits": { "type": "String" } } }, "auditCachedTooltipHits": " · {n} Treffer", "@auditCachedTooltipHits": { "placeholders": { "n": { "type": "int" } } }, "auditConfigureSystemAi": "System-AI unter Einstellungen konfigurieren (Cmd+,)", "auditClearDialogTitle": "Audit-Log löschen?", "auditClearDialogBody": "Löscht jedes Audit-Event auf dem aktiven Kanal und seedet einen neuen chain.reset-Marker mit Prüfer und Begründung. Auf beta / production verweigert. Nicht umkehrbar.", "auditClearReviewerLabel": "Prüfer", "auditClearReasonLabel": "Begründung (im chain.reset-Marker festgehalten)", "auditClearReasonHelper": "Erforderlich — Auditoren werden das lesen.", "auditClearLogButton": "Log löschen", "modulesTitle": "Module", "modulesNoneTitle": "Noch keine Module", "modulesNoneHint": "`fai install ` ausführen oder ~/.fai/modules/ prüfen.", "modulesReloadTooltip": "Aktualisieren", "modulesRecentActivity": "LETZTE AKTIVITÄT", "modulesRecentActivityHint": "letzte {n} install/uninstall-Ereignisse aus dem Audit-Log", "@modulesRecentActivityHint": { "placeholders": { "n": { "type": "int" } } }, "modulesActivityInstalled": "installiert", "modulesActivityUninstalled": "deinstalliert", "modulesCapabilitiesLabel": "Fähigkeiten", "modulesUninstallTitle": "Modul deinstallieren?", "modulesUninstallBody": "Entfernt {name} v{version} von diesem Hub. Flows, die es verwenden, schlagen beim nächsten Lauf fehl. Ein `module.uninstalled`-Audit-Event wird festgehalten.", "@modulesUninstallBody": { "placeholders": { "name": { "type": "String" }, "version": { "type": "String" } } }, "modulesUninstalledToast": "{name} v{version} deinstalliert.", "@modulesUninstalledToast": { "placeholders": { "name": { "type": "String" }, "version": { "type": "String" } } }, "modulesUninstallFailed": "Deinstallation fehlgeschlagen: {error}", "@modulesUninstallFailed": { "placeholders": { "error": { "type": "String" } } }, "modulesUninstalling": "Wird deinstalliert…", "moduleSheetFailedToLoad": "Laden fehlgeschlagen: {error}", "@moduleSheetFailedToLoad": { "placeholders": { "error": { "type": "String" } } }, "moduleSheetCapabilities": "Fähigkeiten", "moduleSheetPermissions": "Deklarierte Berechtigungen", "moduleSheetNoPermissions": "(keine — reines Berechnungsmodul)", "flowsTitle": "Flows", "flowsReloadTooltip": "Aktualisieren", "flowsNoneTitle": "Keine gespeicherten Flows", "flowsNoneHint": "Flow speichern mit `fai admin flows save `, dann taucht er hier auf.", "flowsRunDialogTitle": "{name} ausführen", "@flowsRunDialogTitle": { "placeholders": { "name": { "type": "String" } } }, "flowsRunDialogBody": "Eingaben als key=value, eine pro Zeile. Alle Werte werden als Text-Payloads gesendet. Für binäre Eingaben die `fai run` CLI nutzen.", "flowsInputsHint": "name=World\ntarget_language=English\nsummary_style=three bullet points", "flowsRunButton": "Starten", "flowsRunningTitle": "{name} läuft", "@flowsRunningTitle": { "placeholders": { "name": { "type": "String" } } }, "flowsRunning": "Flow läuft…", "flowsNoOutputs": "Flow abgeschlossen ohne deklarierte Outputs.", "approvalsTitle": "Freigaben", "approvalsTabPending": "Offen", "approvalsTabHistory": "Verlauf", "approvalsInboxZero": "Posteingang leer", "approvalsInboxHint": "Alles erledigt. Neue `system.approval@^0`-Schritte landen automatisch hier.", "approvalsReloadTooltip": "Aktualisieren", "approvalsPillPending": "offen", "approvalsPillApproved": "freigegeben", "approvalsPillRejected": "abgelehnt", "approvalsPillExpired": "abgelaufen", "approvalsPayloadPreview": "PAYLOAD-VORSCHAU", "approvalsApproveButton": "Freigeben", "approvalsRejectButton": "Ablehnen", "approvalsRejectDialogTitle": "Freigabe ablehnen", "approvalsRejectReasonLabel": "Begründung (im Audit-Log festgehalten)", "approvalsApprovedToast": "freigegeben · {flow} › {step}", "@approvalsApprovedToast": { "placeholders": { "flow": { "type": "String" }, "step": { "type": "String" } } }, "approvalsRejectedToast": "abgelehnt · {flow} › {step}", "@approvalsRejectedToast": { "placeholders": { "flow": { "type": "String" }, "step": { "type": "String" } } }, "approvalsApproveFailed": "Freigabe fehlgeschlagen: {error}", "@approvalsApproveFailed": { "placeholders": { "error": { "type": "String" } } }, "approvalsRejectFailed": "Ablehnung fehlgeschlagen: {error}", "@approvalsRejectFailed": { "placeholders": { "error": { "type": "String" } } }, "approvalsHistoryEmpty": "Noch kein Verlauf", "approvalsHistoryEmptyHint": "Entschiedene Freigaben (freigegeben / abgelehnt / abgelaufen) erscheinen hier.\nDas Audit-Log enthält den vollständigen hash-verketteten Datensatz.", "approvalsDialogDecided": "entschieden", "approvalsDialogCreated": "erstellt", "approvalsDialogReason": "Begründung", "approvalsDialogPrompt": "PROMPT", "approvalsExpiresIn": "{minutes}m", "@approvalsExpiresIn": { "placeholders": { "minutes": { "type": "int" } } }, "approvalsExpiresInHours": "{hours}h", "@approvalsExpiresInHours": { "placeholders": { "hours": { "type": "int" } } }, "doctorTitle": "Diagnose", "doctorSummaryModules": "Module", "doctorSummaryApprovals": "Freigaben", "doctorSummaryAudit": "Protokoll", "doctorSummaryServices": "Dienste", "doctorSummaryCapabilities": "{n} Fähigkeiten", "@doctorSummaryCapabilities": { "placeholders": { "n": { "type": "int" } } }, "doctorSummaryPending": "offen", "doctorSummaryChain": "{verified}/{total} Kette", "@doctorSummaryChain": { "placeholders": { "verified": { "type": "int" }, "total": { "type": "int" } } }, "doctorSummaryDeclared": "deklariert", "doctorModulesPanelSummary": "{n} Module · {m} Fähigkeiten", "@doctorModulesPanelSummary": { "placeholders": { "n": { "type": "int" }, "m": { "type": "int" } } }, "doctorApprovalsNone": "Keine offenen Freigaben", "doctorApprovalsCount": "{n, plural, =1{1 Freigabe wartet auf Prüfung} other{{n} Freigaben warten auf Prüfung}}", "@doctorApprovalsCount": { "placeholders": { "n": { "type": "int" } } }, "doctorApprovalsAttentionPill": "wichtig", "doctorServicesEmpty": "Keine Host-Dienste deklariert", "doctorServicesEmptyHint": "in ~/.fai/config.yaml unter services: hinzufügen", "doctorPillLoaded": "geladen", "doctorPillEmpty": "leer", "doctorRecheckTooltip": "Erneut prüfen", "doctorEventLogSection": "Audit-Log", "doctorModulesApprovalsSection": "Module & Freigaben", "doctorHostServicesSection": "Host-Dienste", "doctorDaemonFilesSection": "Daemon-Dateien", "doctorDaemonControlSection": "Daemon-Steuerung", "doctorChainIntact": "Hash-Kette intakt", "doctorChainIntactDetail": "{n} Ereignisse · prev_event_sha256 lückenlos verifiziert", "@doctorChainIntactDetail": { "placeholders": { "n": { "type": "int" } } }, "doctorChainTampered": "Manipulation erkannt", "doctorChainTamperedDetail": "{verified} von {total} verifiziert vor Mismatch bei {id}", "@doctorChainTamperedDetail": { "placeholders": { "verified": { "type": "int" }, "total": { "type": "int" }, "id": { "type": "String" } } }, "doctorChainPillOk": "WORM-1", "doctorChainPillTamper": "MANIPULIERT", "doctorVerifyNow": "Jetzt prüfen", "doctorRestart": "Neustart", "doctorStart": "Starten", "doctorStop": "Stoppen", "doctorStatusAction": "Status", "doctorRunningOn": "Läuft auf {name}: {endpoint}", "@doctorRunningOn": { "placeholders": { "name": { "type": "String" }, "endpoint": { "type": "String" } } }, "doctorStoppedOn": "{name}-Daemon gestoppt", "@doctorStoppedOn": { "placeholders": { "name": { "type": "String" } } }, "doctorStatusUnknown": "Daemon-Status: …", "doctorPillRunning": "läuft", "doctorPillStopped": "gestoppt", "doctorDaemonControlHint": "Studio ruft das Platform-Binary auf — entspricht `fai daemon …`, sodass CLI und UI im Gleichschritt bleiben.", "doctorDaemonControlWorking": "Wird ausgeführt…", "doctorPathLog": "Log", "doctorPathConfig": "Konfig", "doctorPathDb": "Audit-DB", "doctorPathModules": "Module-Verzeichnis", "doctorPathFlows": "Flow-Verzeichnis", "doctorPathPid": "PID-Datei", "doctorPathsEmpty": "Daemon hat keine Datei-Pfade gemeldet. Hub aktualisieren via `fai daemon restart`.", "doctorOpenError": "Konnte nicht öffnen: {detail}", "@doctorOpenError": { "placeholders": { "detail": { "type": "String" } } }, "doctorUpdateAvailable": "Update verfügbar — {version}", "@doctorUpdateAvailable": { "placeholders": { "version": { "type": "String" } } }, "doctorUpdateBody": "Kanal {channel} bietet jetzt {version}. Per Button anwenden — Studio ruft `fai update apply --channel {channel}` auf.", "@doctorUpdateBody": { "placeholders": { "channel": { "type": "String" }, "version": { "type": "String" } } }, "doctorUpdateUnreachable": "Release-Host nicht erreichbar", "doctorUpdateUnreachableBody": "Release-Feed für {channel} konnte nicht erreicht werden.", "@doctorUpdateUnreachableBody": { "placeholders": { "channel": { "type": "String" } } }, "doctorReleaseNotes": "Notes: {url}", "@doctorReleaseNotes": { "placeholders": { "url": { "type": "String" } } }, "doctorPillNew": "neu", "doctorPillOffline": "offline", "doctorApplyUpdate": "Update anwenden", "doctorApplying": "Wird angewendet…", "doctorApplyDone": "Update angewendet. Studio neu starten, um die neue Daemon-Version zu sehen.", "mcpHeader": "MCP-CLIENTS", "mcpHint": "Externe MCP-Server bringen ihre Tools als `mcp..` Fähigkeiten ein. Einmal konfigurieren, im Store sichtbar.", "mcpEmpty": "Keine MCP-Server konfiguriert. + klicken zum Hinzufügen.", "n8nHeader": "N8N-ENDPUNKTE", "n8nHint": "Aktive n8n-Workflows erscheinen als `n8n..` Fähigkeiten. Einmal konfigurieren, im Store sichtbar.", "n8nEmpty": "Keine n8n-Endpunkte konfiguriert. + klicken zum Hinzufügen.", "hubUnreachable": "Hub nicht erreichbar", "hubUnreachableHint": "Hub starten mit `fai serve`.", "languageEnglish": "English", "languageGerman": "Deutsch", "searchHint": "Springe überall hin — Module, Store, Flows, Seiten…", "searchIndexing": "Indiziere…", "searchNoMatches": "Keine Treffer.", "searchHintNavigate": "↑↓ navigieren", "searchHintOpen": "Enter öffnen", "searchHintClose": "Esc schließen", "searchGroupPages": "Seiten", "searchGroupModules": "Module", "searchGroupStore": "Store", "searchGroupFlows": "Flows", "searchSettingsLabel": "Einstellungen", "searchPageHint": "Seite · ⌘{n}", "@searchPageHint": { "placeholders": { "n": { "type": "int" } } }, "searchSettingsHint": "Hub-Endpunkt, Kanäle, System-AI · ⌘;", "searchInstalledModuleHint": "installiertes Modul · v{version}", "@searchInstalledModuleHint": { "placeholders": { "version": { "type": "String" } } }, "searchStoreUncategorized": "ohne Kategorie", "searchStoreHintWithTagline": "Store · {tagline}", "@searchStoreHintWithTagline": { "placeholders": { "tagline": { "type": "String" } } }, "searchStoreHintWithCategory": "Store · {category}", "@searchStoreHintWithCategory": { "placeholders": { "category": { "type": "String" } } }, "searchSavedFlowHint": "gespeicherter Flow", "systemAiTitle": "System-AI", "systemAiIntro": "Die hub-interne LLM, die die Plattform selbst für Fehlererklärungen und Operator-Hilfe nutzt. Standardmäßig aus; hier konfigurieren. Siehe docs/architecture/system-ai.md, was über die Leitung geht.", "systemAiProviderLabel": "Provider", "systemAiEndpointLabel": "Endpunkt-URL (bis /v1)", "systemAiApiKeyRequired": "API-Key-Umgebungsvariable (erforderlich)", "systemAiApiKeyOptional": "API-Key-Umgebungsvariable (optional)", "systemAiApiKeyDisclaimer": "Studio liest oder speichert den Key-Wert nie — nur den Namen der Umgebungsvariable. Der Hub liest `${name}` zur Anfragezeit.", "@systemAiApiKeyDisclaimer": { "placeholders": { "name": { "type": "String" } } }, "systemAiTestConnection": "Verbindung testen", "systemAiTesting": "Teste…", "systemAiSave": "Speichern", "systemAiPrivacyHeader": "PRIVACY-MODUS", "systemAiPrivacyOffLabel": "Aus", "systemAiPrivacyOffDesc": "Feature deaktiviert. Keine Anfragen verlassen den Hub.", "systemAiPrivacyRedactedLabel": "Redigiert", "systemAiPrivacyRedactedDesc": "Nur event_type / error / Modul-Namen. KRITIS-freundlicher Standard.", "systemAiPrivacyFullLabel": "Voll", "systemAiPrivacyFullDesc": "Enthält das Audit-Detail-JSON (nur Hash — keine Roh-Payloads).", "systemAiConnectionOk": "Verbindung ok", "systemAiConnectionFailed": "Verbindung fehlgeschlagen", "systemAiReplyPrefix": "Antwort: {text}", "@systemAiReplyPrefix": { "placeholders": { "text": { "type": "String" } } }, "systemAiModelLabel": "Modell (erforderlich)", "systemAiModelHintFallback": "Modell-Identifier, den der Provider erwartet", "systemAiModelHelperBase": "Erforderlich: aus der Liste auswählen (Aktualisieren) oder eintippen.", "systemAiModelHelperOllama": "Erforderlich: aus der Liste auswählen (Aktualisieren) oder eintippen. Mit Pull von Ollama herunterladen.", "systemAiRefresh": "Aktualisieren", "systemAiPull": "Pull", "systemAiPulling": "Lade…", "systemAiCouldNotListModels": "Modelle konnten nicht aufgelistet werden: {error}", "@systemAiCouldNotListModels": { "placeholders": { "error": { "type": "String" } } }, "systemAiNoModelsOllama": "Noch keine Modelle auf dem Ollama-Server. Oben eintippen und Pull klicken.", "systemAiNoModelsGeneric": "Provider lieferte keine Modelle.", "systemAiSuitabilityRecommended": "empfohlen", "systemAiSuitabilityBalanced": "ausgewogen", "systemAiSuitabilitySmall": "klein — Qualität evtl. eingeschränkt", "systemAiSuitabilityLarge": "groß — langsamer", "systemAiSuitabilityHuge": "sehr groß — auf einem Laptop wahrscheinlich zu langsam", "systemAiSuitabilityUnknown": "Größe unbekannt", "systemAiHwDetected": "Erkannt: {summary}", "@systemAiHwDetected": { "placeholders": { "summary": { "type": "String" } } }, "systemAiHwReviewed": " · Kuratierung geprüft {date}", "@systemAiHwReviewed": { "placeholders": { "date": { "type": "String" } } }, "systemAiLegendRecommended": "empfohlen für diese Hardware{tier}", "@systemAiLegendRecommended": { "placeholders": { "tier": { "type": "String" } } }, "systemAiLegendBalanced": "ausgewogen (4-8B)", "systemAiLegendSmallLarge": "klein <3B / groß 9-15B / über Hardware", "systemAiLegendHuge": "sehr groß >15B", "systemAiLegendUnknown": "Größe unbekannt", "systemAiCacheRow": "Cache: {n} {n, plural, =1{gespeicherte Erklärung} other{gespeicherte Erklärungen}}. Identische Prompts treffen den Cache; Modell- oder Privacy-Modus-Wechsel leeren ihn automatisch.", "@systemAiCacheRow": { "placeholders": { "n": { "type": "int" } } }, "systemAiCacheClear": "Leeren", "systemAiCacheClearedToast": "{n} gespeicherte System-AI-Erklärungen gelöscht.", "@systemAiCacheClearedToast": { "placeholders": { "n": { "type": "int" } } }, "systemAiCacheClearFailed": "Cache-Löschen fehlgeschlagen: {error}", "@systemAiCacheClearFailed": { "placeholders": { "error": { "type": "String" } } }, "systemAiPullEmptyError": "Erst eine Modell-ID eintippen (z.B. gemma3:4b).", "systemAiPullFailedError": "Pull fehlgeschlagen: {error}", "@systemAiPullFailedError": { "placeholders": { "error": { "type": "String" } } } }