fix(l10n): no literal backticks in UI text, two stray informal imperatives
Some checks are pending
Security / Security check (push) Waiting to run
Some checks are pending
Security / Security check (push) Waiting to run
Text widgets render markdown backticks verbatim (usertest: reads as typos / raw dev output) — stripped across both catalogs; code terms stay inline in plain type. 'Zeig dem Hub' / 'Nimm das CLI' now use the formal address; the guard test learns both stems. Signed-off-by: flemming-it <stefan.a.flemming@googlemail.com>
This commit is contained in:
parent
eab58c0b68
commit
6bbe670074
6 changed files with 156 additions and 156 deletions
|
|
@ -54,13 +54,13 @@
|
||||||
"errApprovalRejected": "Freigabe vom Reviewer abgelehnt.",
|
"errApprovalRejected": "Freigabe vom Reviewer abgelehnt.",
|
||||||
"errApprovalRejectedHint": "Der Reviewer hat den Step abgelehnt. Begründung steht im Audit-Log.",
|
"errApprovalRejectedHint": "Der Reviewer hat den Step abgelehnt. Begründung steht im Audit-Log.",
|
||||||
"errApprovalTimedOut": "Freigabe-Timeout abgelaufen.",
|
"errApprovalTimedOut": "Freigabe-Timeout abgelaufen.",
|
||||||
"errApprovalTimedOutHint": "Es wurde nicht rechtzeitig entschieden. Entweder `timeout_seconds` am Freigabe-Step erhöhen oder den Reviewer informieren.",
|
"errApprovalTimedOutHint": "Es wurde nicht rechtzeitig entschieden. Entweder timeout_seconds am Freigabe-Step erhöhen oder den Reviewer informieren.",
|
||||||
"errOutputTooLarge": "Step-Output hat die Größenbegrenzung überschritten.",
|
"errOutputTooLarge": "Step-Output hat die Größenbegrenzung überschritten.",
|
||||||
"errOutputTooLargeHint": "Entweder Output kürzen (Text truncaten, Bytes komprimieren) oder `max_output_size_mb` in der Operator-Config erhöhen.",
|
"errOutputTooLargeHint": "Entweder Output kürzen (Text truncaten, Bytes komprimieren) oder max_output_size_mb in der Operator-Config erhöhen.",
|
||||||
"errServiceUnavailableForStep": "Host-Service nicht konfiguriert.",
|
"errServiceUnavailableForStep": "Host-Service nicht konfiguriert.",
|
||||||
"errServiceUnavailableForStepHint": "Das Modul braucht einen Service (z.B. ollama, playwright), den der Operator nicht deklariert hat. Tragen Sie ihn unter `services:` in ~/.chain/config.yaml ein.",
|
"errServiceUnavailableForStepHint": "Das Modul braucht einen Service (z.B. ollama, playwright), den der Operator nicht deklariert hat. Tragen Sie ihn unter services: in ~/.chain/config.yaml ein.",
|
||||||
"errMissingValue": "Pflichtwert fehlt.",
|
"errMissingValue": "Pflichtwert fehlt.",
|
||||||
"errMissingValueHint": "Der Step erwartet eine Eingabe, die nicht verdrahtet ist — entweder zur Laufzeit liefern oder den vorgelagerten `$ref` korrigieren.",
|
"errMissingValueHint": "Der Step erwartet eine Eingabe, die nicht verdrahtet ist — entweder zur Laufzeit liefern oder den vorgelagerten $ref korrigieren.",
|
||||||
"errMcpUnreachable": "MCP-Endpunkt nicht erreichbar.",
|
"errMcpUnreachable": "MCP-Endpunkt nicht erreichbar.",
|
||||||
"errMcpUnreachableHint": "Der MCP-Server hat nicht geantwortet. Endpunkt in Einstellungen → Integrationen prüfen und sicherstellen, dass er läuft.",
|
"errMcpUnreachableHint": "Der MCP-Server hat nicht geantwortet. Endpunkt in Einstellungen → Integrationen prüfen und sicherstellen, dass er läuft.",
|
||||||
"errCapabilityNotInstalled": "Benötigte Capability nicht installiert.",
|
"errCapabilityNotInstalled": "Benötigte Capability nicht installiert.",
|
||||||
|
|
@ -216,7 +216,7 @@
|
||||||
"n8nAddTooltip": "n8n-Endpunkt hinzufügen",
|
"n8nAddTooltip": "n8n-Endpunkt hinzufügen",
|
||||||
"n8nRemoveTooltip": "Endpunkt entfernen",
|
"n8nRemoveTooltip": "Endpunkt entfernen",
|
||||||
"addMcpTitle": "MCP-Server hinzufügen",
|
"addMcpTitle": "MCP-Server hinzufügen",
|
||||||
"addMcpIntro": "Tools, die der Server via `tools/list` anbietet, erscheinen im Store als `mcp.<name>.<tool>`-Fähigkeiten.",
|
"addMcpIntro": "Tools, die der Server via tools/list anbietet, erscheinen im Store als mcp.<name>.<tool>-Fähigkeiten.",
|
||||||
"addMcpSuggestionsLabel": "Vorschläge — zum Vorausfüllen klicken",
|
"addMcpSuggestionsLabel": "Vorschläge — zum Vorausfüllen klicken",
|
||||||
"addMcpNameLabel": "Name (keine Punkte)",
|
"addMcpNameLabel": "Name (keine Punkte)",
|
||||||
"addMcpNameHint": "filesystem",
|
"addMcpNameHint": "filesystem",
|
||||||
|
|
@ -227,7 +227,7 @@
|
||||||
"addMcpNotesLabel": "Notizen (optional)",
|
"addMcpNotesLabel": "Notizen (optional)",
|
||||||
"addMcpAddButton": "Hinzufügen + Discovery",
|
"addMcpAddButton": "Hinzufügen + Discovery",
|
||||||
"addN8nTitle": "n8n-Endpunkt hinzufügen",
|
"addN8nTitle": "n8n-Endpunkt hinzufügen",
|
||||||
"addN8nIntro": "Aktive Workflows erscheinen im Store als `n8n.<name>.<workflow_slug>`-Fähigkeiten.",
|
"addN8nIntro": "Aktive Workflows erscheinen im Store als n8n.<name>.<workflow_slug>-Fähigkeiten.",
|
||||||
"addN8nNameLabel": "Name (keine Punkte)",
|
"addN8nNameLabel": "Name (keine Punkte)",
|
||||||
"addN8nNameHint": "ops",
|
"addN8nNameHint": "ops",
|
||||||
"addN8nBaseUrlLabel": "Basis-URL (ohne /api/v1)",
|
"addN8nBaseUrlLabel": "Basis-URL (ohne /api/v1)",
|
||||||
|
|
@ -668,7 +668,7 @@
|
||||||
"auditClearLogButton": "Log löschen",
|
"auditClearLogButton": "Log löschen",
|
||||||
"modulesTitle": "Module",
|
"modulesTitle": "Module",
|
||||||
"modulesNoneTitle": "Noch keine Module",
|
"modulesNoneTitle": "Noch keine Module",
|
||||||
"modulesNoneHint": "`chain install <capability-name>` ausführen oder ~/.chain/modules/ prüfen.",
|
"modulesNoneHint": "chain install <capability-name> ausführen oder ~/.chain/modules/ prüfen.",
|
||||||
"modulesReloadTooltip": "Aktualisieren",
|
"modulesReloadTooltip": "Aktualisieren",
|
||||||
"modulesRecentActivity": "LETZTE AKTIVITÄT",
|
"modulesRecentActivity": "LETZTE AKTIVITÄT",
|
||||||
"modulesRecentActivityHint": "letzte {n} install/uninstall-Ereignisse aus dem Audit-Log",
|
"modulesRecentActivityHint": "letzte {n} install/uninstall-Ereignisse aus dem Audit-Log",
|
||||||
|
|
@ -683,7 +683,7 @@
|
||||||
"modulesActivityUninstalled": "deinstalliert",
|
"modulesActivityUninstalled": "deinstalliert",
|
||||||
"modulesCapabilitiesLabel": "Fähigkeiten",
|
"modulesCapabilitiesLabel": "Fähigkeiten",
|
||||||
"modulesUninstallTitle": "Modul deinstallieren?",
|
"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": "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": {
|
"@modulesUninstallBody": {
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
"name": {
|
"name": {
|
||||||
|
|
@ -728,7 +728,7 @@
|
||||||
"flowsTitle": "Flows",
|
"flowsTitle": "Flows",
|
||||||
"flowsReloadTooltip": "Aktualisieren",
|
"flowsReloadTooltip": "Aktualisieren",
|
||||||
"flowsNoneTitle": "Keine gespeicherten Flows",
|
"flowsNoneTitle": "Keine gespeicherten Flows",
|
||||||
"flowsNoneHint": "Flow speichern mit `chain admin flows save <name> <flow.yaml>`, dann taucht er hier auf.",
|
"flowsNoneHint": "Flow speichern mit chain admin flows save <name> <flow.yaml>, dann taucht er hier auf.",
|
||||||
"flowsRunDialogTitle": "{name} ausführen",
|
"flowsRunDialogTitle": "{name} ausführen",
|
||||||
"@flowsRunDialogTitle": {
|
"@flowsRunDialogTitle": {
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
|
|
@ -896,7 +896,7 @@
|
||||||
},
|
},
|
||||||
"storeAdvisoryVersionTooltip": "Föderierter Upstream-Dienst — Version ist Richtwert; der Upstream kann ohne Versionsanhebung Kompatibilität brechen.",
|
"storeAdvisoryVersionTooltip": "Föderierter Upstream-Dienst — Version ist Richtwert; der Upstream kann ohne Versionsanhebung Kompatibilität brechen.",
|
||||||
"uninstallVersionPickerTitle": "Version zum Entfernen wählen",
|
"uninstallVersionPickerTitle": "Version zum Entfernen wählen",
|
||||||
"uninstallVersionPickerBody": "Mehrere Versionen von `{module}` sind parallel installiert. Wählen Sie genau die Version aus, die entfernt werden soll — die anderen bleiben bestehen.",
|
"uninstallVersionPickerBody": "Mehrere Versionen von {module} sind parallel installiert. Wählen Sie genau die Version aus, die entfernt werden soll — die anderen bleiben bestehen.",
|
||||||
"@uninstallVersionPickerBody": {
|
"@uninstallVersionPickerBody": {
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
"module": {
|
"module": {
|
||||||
|
|
@ -906,7 +906,7 @@
|
||||||
},
|
},
|
||||||
"uninstallVersionPickerContinue": "Weiter",
|
"uninstallVersionPickerContinue": "Weiter",
|
||||||
"defaultScopeHeader": "STANDARD-SCOPE",
|
"defaultScopeHeader": "STANDARD-SCOPE",
|
||||||
"defaultScopeBlurb": "Geordnete Liste von Publisher-Segmenten, die der Hub konsultiert, wenn ein Flow eine Capability ohne explizites `<provider>/`-Präfix benennt. Erster Treffer gewinnt — die Segmente, die euer Team am häufigsten nutzt, gehören nach oben. Katalog-bekannte Publisher erscheinen als Chips; private Segmente lassen sich frei eintragen.",
|
"defaultScopeBlurb": "Geordnete Liste von Publisher-Segmenten, die der Hub konsultiert, wenn ein Flow eine Capability ohne explizites <provider>/-Präfix benennt. Erster Treffer gewinnt — die Segmente, die euer Team am häufigsten nutzt, gehören nach oben. Katalog-bekannte Publisher erscheinen als Chips; private Segmente lassen sich frei eintragen.",
|
||||||
"defaultScopeAddLabel": "Publisher-Segment hinzufügen",
|
"defaultScopeAddLabel": "Publisher-Segment hinzufügen",
|
||||||
"defaultScopeAddHint": "z.B. acme.team",
|
"defaultScopeAddHint": "z.B. acme.team",
|
||||||
"defaultScopeAddButton": "Hinzufügen",
|
"defaultScopeAddButton": "Hinzufügen",
|
||||||
|
|
@ -934,7 +934,7 @@
|
||||||
"welcomeChecklistNextTodayBody": "Für Fortgeschrittene: das Skript tools/today/propose.sh regelmäßig (Cron) laufen lassen — die Editorial-Karte im Store füllt sich dann mit kuratierten Stories.",
|
"welcomeChecklistNextTodayBody": "Für Fortgeschrittene: das Skript tools/today/propose.sh regelmäßig (Cron) laufen lassen — die Editorial-Karte im Store füllt sich dann mit kuratierten Stories.",
|
||||||
"welcomeChecklistNextTodayButton": "Today-Doku öffnen",
|
"welcomeChecklistNextTodayButton": "Today-Doku öffnen",
|
||||||
"welcomeChecklistNextModuleTitle": "Eigenes Modul bauen",
|
"welcomeChecklistNextModuleTitle": "Eigenes Modul bauen",
|
||||||
"welcomeChecklistNextModuleBody": "Für Entwickler: Mit `chain new module <name>` entsteht ein fertiges Modul-Gerüst (Rust+WASM). Das module-sdk übernimmt die technische Anbindung; Sie schreiben nur die eigentliche Logik.",
|
"welcomeChecklistNextModuleBody": "Für Entwickler: Mit chain new module <name> entsteht ein fertiges Modul-Gerüst (Rust+WASM). Das module-sdk übernimmt die technische Anbindung; Sie schreiben nur die eigentliche Logik.",
|
||||||
"welcomeChecklistNextModuleButton": "Doku lesen",
|
"welcomeChecklistNextModuleButton": "Doku lesen",
|
||||||
"auditGroupToday": "HEUTE",
|
"auditGroupToday": "HEUTE",
|
||||||
"auditGroupYesterday": "GESTERN",
|
"auditGroupYesterday": "GESTERN",
|
||||||
|
|
@ -1033,15 +1033,15 @@
|
||||||
"errNotFoundHint": "Das Angefragte ist nicht hier — entweder entfernt oder nie existiert.",
|
"errNotFoundHint": "Das Angefragte ist nicht hier — entweder entfernt oder nie existiert.",
|
||||||
"errAlreadyExists": "Existiert bereits.",
|
"errAlreadyExists": "Existiert bereits.",
|
||||||
"errPermissionDenied": "Berechtigung verweigert.",
|
"errPermissionDenied": "Berechtigung verweigert.",
|
||||||
"errPermissionDeniedHint": "Die Operator-Policy des Hubs blockiert diese Aktion. `~/.chain/config.yaml` prüfen.",
|
"errPermissionDeniedHint": "Die Operator-Policy des Hubs blockiert diese Aktion. ~/.chain/config.yaml prüfen.",
|
||||||
"errFailedPrecondition": "Setup-Problem hat das blockiert.",
|
"errFailedPrecondition": "Setup-Problem hat das blockiert.",
|
||||||
"errFailedPreconditionHint": "Der Hub konnte nicht weiter, weil etwas Vorausgesetztes fehlt. Details unten erklären was.",
|
"errFailedPreconditionHint": "Der Hub konnte nicht weiter, weil etwas Vorausgesetztes fehlt. Details unten erklären was.",
|
||||||
"errInternal": "Unerwarteter interner Fehler.",
|
"errInternal": "Unerwarteter interner Fehler.",
|
||||||
"errInternalHint": "Hub-Logs unter `~/.chain/logs/` prüfen. Wenn das öfter passiert, bitte melden.",
|
"errInternalHint": "Hub-Logs unter ~/.chain/logs/ prüfen. Wenn das öfter passiert, bitte melden.",
|
||||||
"errUnavailable": "Hub nicht erreichbar.",
|
"errUnavailable": "Hub nicht erreichbar.",
|
||||||
"errUnavailableHint": "Sicherstellen, dass `chain serve` (oder `chain daemon start`) läuft und der Daemon-Endpunkt zu Studios Einstellungen passt.",
|
"errUnavailableHint": "Sicherstellen, dass chain serve (oder chain daemon start) läuft und der Daemon-Endpunkt zu Studios Einstellungen passt.",
|
||||||
"errUnauthenticated": "Authentifizierung erforderlich.",
|
"errUnauthenticated": "Authentifizierung erforderlich.",
|
||||||
"errUnauthenticatedHint": "`CHAIN_REGISTRY_TOKEN` setzen oder in den Einstellungen anmelden, dann erneut versuchen.",
|
"errUnauthenticatedHint": "CHAIN_REGISTRY_TOKEN setzen oder in den Einstellungen anmelden, dann erneut versuchen.",
|
||||||
"errCopyDetail": "Detail kopieren",
|
"errCopyDetail": "Detail kopieren",
|
||||||
"errDetailCopied": "Detail in die Zwischenablage kopiert.",
|
"errDetailCopied": "Detail in die Zwischenablage kopiert.",
|
||||||
"flowsOutputUnknown": "Unbekannter Output-Payload-Typ.",
|
"flowsOutputUnknown": "Unbekannter Output-Payload-Typ.",
|
||||||
|
|
@ -1264,7 +1264,7 @@
|
||||||
"doctorStatusUnknown": "Daemon-Status: …",
|
"doctorStatusUnknown": "Daemon-Status: …",
|
||||||
"doctorPillRunning": "läuft",
|
"doctorPillRunning": "läuft",
|
||||||
"doctorPillStopped": "gestoppt",
|
"doctorPillStopped": "gestoppt",
|
||||||
"doctorDaemonControlHint": "Studio ruft das Platform-Binary auf — entspricht `chain daemon …`, sodass CLI und UI im Gleichschritt bleiben.",
|
"doctorDaemonControlHint": "Studio ruft das Platform-Binary auf — entspricht chain daemon …, sodass CLI und UI im Gleichschritt bleiben.",
|
||||||
"doctorDaemonControlWorking": "Wird ausgeführt…",
|
"doctorDaemonControlWorking": "Wird ausgeführt…",
|
||||||
"doctorPathLog": "Log",
|
"doctorPathLog": "Log",
|
||||||
"doctorPathConfig": "Konfig",
|
"doctorPathConfig": "Konfig",
|
||||||
|
|
@ -1272,7 +1272,7 @@
|
||||||
"doctorPathModules": "Module-Verzeichnis",
|
"doctorPathModules": "Module-Verzeichnis",
|
||||||
"doctorPathFlows": "Flow-Verzeichnis",
|
"doctorPathFlows": "Flow-Verzeichnis",
|
||||||
"doctorPathPid": "PID-Datei",
|
"doctorPathPid": "PID-Datei",
|
||||||
"doctorPathsEmpty": "Daemon hat keine Datei-Pfade gemeldet. Hub aktualisieren via `chain daemon restart`.",
|
"doctorPathsEmpty": "Daemon hat keine Datei-Pfade gemeldet. Hub aktualisieren via chain daemon restart.",
|
||||||
"doctorOpenError": "Konnte nicht öffnen: {detail}",
|
"doctorOpenError": "Konnte nicht öffnen: {detail}",
|
||||||
"@doctorOpenError": {
|
"@doctorOpenError": {
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
|
|
@ -1289,7 +1289,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"doctorUpdateBody": "Kanal {channel} bietet jetzt {version}. Per Button anwenden — Studio ruft `chain update apply --channel {channel}` auf.",
|
"doctorUpdateBody": "Kanal {channel} bietet jetzt {version}. Per Button anwenden — Studio ruft chain update apply --channel {channel} auf.",
|
||||||
"@doctorUpdateBody": {
|
"@doctorUpdateBody": {
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
"channel": {
|
"channel": {
|
||||||
|
|
@ -1323,13 +1323,13 @@
|
||||||
"doctorApplying": "Wird angewendet…",
|
"doctorApplying": "Wird angewendet…",
|
||||||
"doctorApplyDone": "Update angewendet. Studio neu starten, um die neue Daemon-Version zu sehen.",
|
"doctorApplyDone": "Update angewendet. Studio neu starten, um die neue Daemon-Version zu sehen.",
|
||||||
"mcpHeader": "MCP-CLIENTS",
|
"mcpHeader": "MCP-CLIENTS",
|
||||||
"mcpHint": "Externe MCP-Server bringen ihre Tools als `mcp.<server>.<tool>` Fähigkeiten ein. Einmal konfigurieren, im Store sichtbar.",
|
"mcpHint": "Externe MCP-Server bringen ihre Tools als mcp.<server>.<tool> Fähigkeiten ein. Einmal konfigurieren, im Store sichtbar.",
|
||||||
"mcpEmpty": "Keine MCP-Server konfiguriert. + klicken zum Hinzufügen.",
|
"mcpEmpty": "Keine MCP-Server konfiguriert. + klicken zum Hinzufügen.",
|
||||||
"n8nHeader": "N8N-ENDPUNKTE",
|
"n8nHeader": "N8N-ENDPUNKTE",
|
||||||
"n8nHint": "Aktive n8n-Workflows erscheinen als `n8n.<endpoint>.<slug>` Fähigkeiten. Einmal konfigurieren, im Store sichtbar.",
|
"n8nHint": "Aktive n8n-Workflows erscheinen als n8n.<endpoint>.<slug> Fähigkeiten. Einmal konfigurieren, im Store sichtbar.",
|
||||||
"n8nEmpty": "Keine n8n-Endpunkte konfiguriert. + klicken zum Hinzufügen.",
|
"n8nEmpty": "Keine n8n-Endpunkte konfiguriert. + klicken zum Hinzufügen.",
|
||||||
"hubUnreachable": "Hub nicht erreichbar",
|
"hubUnreachable": "Hub nicht erreichbar",
|
||||||
"hubUnreachableHint": "Hub starten mit `chain serve`.",
|
"hubUnreachableHint": "Hub starten mit chain serve.",
|
||||||
"languageEnglish": "English",
|
"languageEnglish": "English",
|
||||||
"languageGerman": "Deutsch",
|
"languageGerman": "Deutsch",
|
||||||
"searchHint": "Springe überall hin — Module, Store, Flows, Seiten…",
|
"searchHint": "Springe überall hin — Module, Store, Flows, Seiten…",
|
||||||
|
|
@ -1384,7 +1384,7 @@
|
||||||
"systemAiEndpointLabel": "Endpunkt-URL (bis /v1)",
|
"systemAiEndpointLabel": "Endpunkt-URL (bis /v1)",
|
||||||
"systemAiApiKeyRequired": "API-Key-Umgebungsvariable (erforderlich)",
|
"systemAiApiKeyRequired": "API-Key-Umgebungsvariable (erforderlich)",
|
||||||
"systemAiApiKeyOptional": "API-Key-Umgebungsvariable (optional)",
|
"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": "Studio liest oder speichert den Key-Wert nie — nur den Namen der Umgebungsvariable. Der Hub liest ${name} zur Anfragezeit.",
|
||||||
"@systemAiApiKeyDisclaimer": {
|
"@systemAiApiKeyDisclaimer": {
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
"name": {
|
"name": {
|
||||||
|
|
@ -1623,7 +1623,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"addSourceTitle": "Modul-Quelle hinzufügen",
|
"addSourceTitle": "Modul-Quelle hinzufügen",
|
||||||
"addSourceIntro": "`{capability}` ist nicht im öffentlichen Store. Zeig dem Hub eine `.chain`-Bundle-URL oder einen lokalen Bundle-Pfad — der Hub lädt es herunter, prüft (sha256 + Signatur) und installiert.",
|
"addSourceIntro": "{capability} ist nicht im öffentlichen Store. Geben Sie dem Hub eine .chain-Bundle-URL oder einen lokalen Bundle-Pfad — der Hub lädt es herunter, prüft (sha256 + Signatur) und installiert.",
|
||||||
"@addSourceIntro": {
|
"@addSourceIntro": {
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
"capability": {"type": "String"}
|
"capability": {"type": "String"}
|
||||||
|
|
@ -1632,7 +1632,7 @@
|
||||||
"addSourceField": "URL oder Pfad zum .chain-Bundle",
|
"addSourceField": "URL oder Pfad zum .chain-Bundle",
|
||||||
"addSourceHint": "https://git.flemming.ai/ihre-org/ihr-modul/releases/download/v0.1.0/foo-0.1.0.chain",
|
"addSourceHint": "https://git.flemming.ai/ihre-org/ihr-modul/releases/download/v0.1.0/foo-0.1.0.chain",
|
||||||
"addSourceHowItWorksTitle": "Wie private Module funktionieren",
|
"addSourceHowItWorksTitle": "Wie private Module funktionieren",
|
||||||
"addSourceHowItWorksBody": "Ein Modul ist ein Verzeichnis mit module.yaml + WASM-Artefakt. Zum Teilen: `chain pack <verzeichnis>` baut ein `.chain`-Bundle, das Sie beliebig hosten können (eigene Forgejo / GitHub / S3). Der Hub installiert per URL und prüft die Signatur gegen seinen Trust-Store.\n\nLokal entwickeln? Nimm das CLI — Studio installiert (noch) nicht aus einem unverpackten Verzeichnis:",
|
"addSourceHowItWorksBody": "Ein Modul ist ein Verzeichnis mit module.yaml + WASM-Artefakt. Zum Teilen: chain pack <verzeichnis> baut ein .chain-Bundle, das Sie beliebig hosten können (eigene Forgejo / GitHub / S3). Der Hub installiert per URL und prüft die Signatur gegen seinen Trust-Store.\n\nLokal entwickeln? Nehmen Sie das CLI — Studio installiert (noch) nicht aus einem unverpackten Verzeichnis:",
|
||||||
"addSourceCliExample": "chain install --link /pfad/zum/modul",
|
"addSourceCliExample": "chain install --link /pfad/zum/modul",
|
||||||
"addSourceInstallButton": "Installieren",
|
"addSourceInstallButton": "Installieren",
|
||||||
"addSourceCancel": "Abbrechen",
|
"addSourceCancel": "Abbrechen",
|
||||||
|
|
@ -1660,12 +1660,12 @@
|
||||||
"detail": {"type": "String"}
|
"detail": {"type": "String"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"chainBinaryNotFound": "Das Programm `chain` wurde auf diesem Rechner nicht gefunden.",
|
"chainBinaryNotFound": "Das Programm chain wurde auf diesem Rechner nicht gefunden.",
|
||||||
"chainBinaryNotFoundHint": "Installieren Sie die Ch∆In-Plattform oder verweisen Sie Studio auf eine vorhandene `chain`-Datei.",
|
"chainBinaryNotFoundHint": "Installieren Sie die Ch∆In-Plattform oder verweisen Sie Studio auf eine vorhandene chain-Datei.",
|
||||||
"chainBinaryLocateButton": "`chain`-Programm suchen …",
|
"chainBinaryLocateButton": "chain-Programm suchen …",
|
||||||
"chainBinaryInstallDocsButton": "Installationsanleitung öffnen",
|
"chainBinaryInstallDocsButton": "Installationsanleitung öffnen",
|
||||||
"chainBinaryPickerTitle": "`chain`-Programm auswählen",
|
"chainBinaryPickerTitle": "chain-Programm auswählen",
|
||||||
"chainBinarySetOk": "Verwende `chain` unter {path}",
|
"chainBinarySetOk": "Verwende chain unter {path}",
|
||||||
"@chainBinarySetOk": {
|
"@chainBinarySetOk": {
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
"path": {"type": "String"}
|
"path": {"type": "String"}
|
||||||
|
|
@ -1695,7 +1695,7 @@
|
||||||
"detail": {"type": "String"}
|
"detail": {"type": "String"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"providerDescOllama": "Lokales `ollama serve`. Die Modelle bleiben auf Ihrem Rechner. Kein API-Schlüssel nötig.",
|
"providerDescOllama": "Lokales ollama serve. Die Modelle bleiben auf Ihrem Rechner. Kein API-Schlüssel nötig.",
|
||||||
"providerDescOpenai": "Gehostete OpenAI-API. Erfordert einen API-Schlüssel. Daten verlassen Ihren Rechner.",
|
"providerDescOpenai": "Gehostete OpenAI-API. Erfordert einen API-Schlüssel. Daten verlassen Ihren Rechner.",
|
||||||
"providerDescLmstudio": "Lokaler LM-Studio-Server. Die Modelle bleiben auf Ihrem Rechner. Kein API-Schlüssel nötig.",
|
"providerDescLmstudio": "Lokaler LM-Studio-Server. Die Modelle bleiben auf Ihrem Rechner. Kein API-Schlüssel nötig.",
|
||||||
"providerDescVllm": "Selbst gehostetes vLLM oder ein anderer OpenAI-kompatibler Server. Endpunkt erforderlich.",
|
"providerDescVllm": "Selbst gehostetes vLLM oder ein anderer OpenAI-kompatibler Server. Endpunkt erforderlich.",
|
||||||
|
|
|
||||||
|
|
@ -62,13 +62,13 @@
|
||||||
"errApprovalRejected": "Approval rejected by reviewer.",
|
"errApprovalRejected": "Approval rejected by reviewer.",
|
||||||
"errApprovalRejectedHint": "The reviewer marked this step as rejected. Check the audit log for the reviewer's reason.",
|
"errApprovalRejectedHint": "The reviewer marked this step as rejected. Check the audit log for the reviewer's reason.",
|
||||||
"errApprovalTimedOut": "Approval timed out.",
|
"errApprovalTimedOut": "Approval timed out.",
|
||||||
"errApprovalTimedOutHint": "No reviewer decided within the configured time. Raise `timeout_seconds` on the approval step or alert the reviewer.",
|
"errApprovalTimedOutHint": "No reviewer decided within the configured time. Raise timeout_seconds on the approval step or alert the reviewer.",
|
||||||
"errOutputTooLarge": "Step output exceeded the size limit.",
|
"errOutputTooLarge": "Step output exceeded the size limit.",
|
||||||
"errOutputTooLargeHint": "Either trim the output (truncate text, downsample bytes) or raise `max_output_size_mb` in the operator config.",
|
"errOutputTooLargeHint": "Either trim the output (truncate text, downsample bytes) or raise max_output_size_mb in the operator config.",
|
||||||
"errServiceUnavailableForStep": "Host service not configured.",
|
"errServiceUnavailableForStep": "Host service not configured.",
|
||||||
"errServiceUnavailableForStepHint": "The module requires a service (e.g. ollama, playwright) the operator hasn't declared. Add it under `services:` in ~/.chain/config.yaml.",
|
"errServiceUnavailableForStepHint": "The module requires a service (e.g. ollama, playwright) the operator hasn't declared. Add it under services: in ~/.chain/config.yaml.",
|
||||||
"errMissingValue": "Required value is missing.",
|
"errMissingValue": "Required value is missing.",
|
||||||
"errMissingValueHint": "The step expected an input that wasn't wired up — either supply it at run time or fix the upstream `$ref`.",
|
"errMissingValueHint": "The step expected an input that wasn't wired up — either supply it at run time or fix the upstream $ref.",
|
||||||
"errMcpUnreachable": "MCP endpoint unreachable.",
|
"errMcpUnreachable": "MCP endpoint unreachable.",
|
||||||
"errMcpUnreachableHint": "The MCP server didn't respond. Check the endpoint in Settings → Integrations and confirm it's running.",
|
"errMcpUnreachableHint": "The MCP server didn't respond. Check the endpoint in Settings → Integrations and confirm it's running.",
|
||||||
"errCapabilityNotInstalled": "Required capability is not installed.",
|
"errCapabilityNotInstalled": "Required capability is not installed.",
|
||||||
|
|
@ -224,7 +224,7 @@
|
||||||
"n8nAddTooltip": "Add n8n endpoint",
|
"n8nAddTooltip": "Add n8n endpoint",
|
||||||
"n8nRemoveTooltip": "Remove endpoint",
|
"n8nRemoveTooltip": "Remove endpoint",
|
||||||
"addMcpTitle": "Add MCP server",
|
"addMcpTitle": "Add MCP server",
|
||||||
"addMcpIntro": "Tools the server advertises via `tools/list` appear in the Store as `mcp.<name>.<tool>` capabilities.",
|
"addMcpIntro": "Tools the server advertises via tools/list appear in the Store as mcp.<name>.<tool> capabilities.",
|
||||||
"addMcpSuggestionsLabel": "Suggested servers — click to pre-fill",
|
"addMcpSuggestionsLabel": "Suggested servers — click to pre-fill",
|
||||||
"addMcpNameLabel": "Name (no dots)",
|
"addMcpNameLabel": "Name (no dots)",
|
||||||
"addMcpNameHint": "filesystem",
|
"addMcpNameHint": "filesystem",
|
||||||
|
|
@ -235,7 +235,7 @@
|
||||||
"addMcpNotesLabel": "Notes (optional)",
|
"addMcpNotesLabel": "Notes (optional)",
|
||||||
"addMcpAddButton": "Add + discover",
|
"addMcpAddButton": "Add + discover",
|
||||||
"addN8nTitle": "Add n8n endpoint",
|
"addN8nTitle": "Add n8n endpoint",
|
||||||
"addN8nIntro": "Active workflows surface in the Store as `n8n.<name>.<workflow_slug>` capabilities.",
|
"addN8nIntro": "Active workflows surface in the Store as n8n.<name>.<workflow_slug> capabilities.",
|
||||||
"addN8nNameLabel": "Name (no dots)",
|
"addN8nNameLabel": "Name (no dots)",
|
||||||
"addN8nNameHint": "ops",
|
"addN8nNameHint": "ops",
|
||||||
"addN8nBaseUrlLabel": "Base URL (without /api/v1)",
|
"addN8nBaseUrlLabel": "Base URL (without /api/v1)",
|
||||||
|
|
@ -686,7 +686,7 @@
|
||||||
"auditClearLogButton": "Clear log",
|
"auditClearLogButton": "Clear log",
|
||||||
"modulesTitle": "Modules",
|
"modulesTitle": "Modules",
|
||||||
"modulesNoneTitle": "No modules yet",
|
"modulesNoneTitle": "No modules yet",
|
||||||
"modulesNoneHint": "Run `chain install <capability-name>` or check ~/.chain/modules/.",
|
"modulesNoneHint": "Run chain install <capability-name> or check ~/.chain/modules/.",
|
||||||
"modulesReloadTooltip": "Reload",
|
"modulesReloadTooltip": "Reload",
|
||||||
"modulesRecentActivity": "RECENT ACTIVITY",
|
"modulesRecentActivity": "RECENT ACTIVITY",
|
||||||
"modulesRecentActivityHint": "last {n} install/uninstall events from the audit log",
|
"modulesRecentActivityHint": "last {n} install/uninstall events from the audit log",
|
||||||
|
|
@ -701,7 +701,7 @@
|
||||||
"modulesActivityUninstalled": "uninstalled",
|
"modulesActivityUninstalled": "uninstalled",
|
||||||
"modulesCapabilitiesLabel": "Capabilities",
|
"modulesCapabilitiesLabel": "Capabilities",
|
||||||
"modulesUninstallTitle": "Uninstall module?",
|
"modulesUninstallTitle": "Uninstall module?",
|
||||||
"modulesUninstallBody": "Removes {name} v{version} from this hub. Flows that reference it will fail at the next run. A `module.uninstalled` audit event is recorded.",
|
"modulesUninstallBody": "Removes {name} v{version} from this hub. Flows that reference it will fail at the next run. A module.uninstalled audit event is recorded.",
|
||||||
"@modulesUninstallBody": {
|
"@modulesUninstallBody": {
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
"name": {
|
"name": {
|
||||||
|
|
@ -746,7 +746,7 @@
|
||||||
"flowsTitle": "Flows",
|
"flowsTitle": "Flows",
|
||||||
"flowsReloadTooltip": "Reload",
|
"flowsReloadTooltip": "Reload",
|
||||||
"flowsNoneTitle": "No saved flows",
|
"flowsNoneTitle": "No saved flows",
|
||||||
"flowsNoneHint": "Save a flow with `chain admin flows save <name> <flow.yaml>` and it shows up here.",
|
"flowsNoneHint": "Save a flow with chain admin flows save <name> <flow.yaml> and it shows up here.",
|
||||||
"flowsRunDialogTitle": "Run {name}",
|
"flowsRunDialogTitle": "Run {name}",
|
||||||
"@flowsRunDialogTitle": {
|
"@flowsRunDialogTitle": {
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
|
|
@ -914,7 +914,7 @@
|
||||||
},
|
},
|
||||||
"storeAdvisoryVersionTooltip": "Federated upstream service — version is advisory; the upstream may break compatibility without bumping it.",
|
"storeAdvisoryVersionTooltip": "Federated upstream service — version is advisory; the upstream may break compatibility without bumping it.",
|
||||||
"uninstallVersionPickerTitle": "Pick a version to uninstall",
|
"uninstallVersionPickerTitle": "Pick a version to uninstall",
|
||||||
"uninstallVersionPickerBody": "Several versions of `{module}` are installed side-by-side. Select the exact version to remove — the others stay in place.",
|
"uninstallVersionPickerBody": "Several versions of {module} are installed side-by-side. Select the exact version to remove — the others stay in place.",
|
||||||
"@uninstallVersionPickerBody": {
|
"@uninstallVersionPickerBody": {
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
"module": {
|
"module": {
|
||||||
|
|
@ -924,7 +924,7 @@
|
||||||
},
|
},
|
||||||
"uninstallVersionPickerContinue": "Continue",
|
"uninstallVersionPickerContinue": "Continue",
|
||||||
"defaultScopeHeader": "DEFAULT SCOPE",
|
"defaultScopeHeader": "DEFAULT SCOPE",
|
||||||
"defaultScopeBlurb": "Ordered list of publisher segments the hub consults when a flow names a capability without an explicit `<provider>/` prefix. First match wins — promote the segments your team uses most to the top. Catalog-known publishers appear as chips; arbitrary entries are accepted for private segments.",
|
"defaultScopeBlurb": "Ordered list of publisher segments the hub consults when a flow names a capability without an explicit <provider>/ prefix. First match wins — promote the segments your team uses most to the top. Catalog-known publishers appear as chips; arbitrary entries are accepted for private segments.",
|
||||||
"defaultScopeAddLabel": "Add publisher segment",
|
"defaultScopeAddLabel": "Add publisher segment",
|
||||||
"defaultScopeAddHint": "e.g. acme.team",
|
"defaultScopeAddHint": "e.g. acme.team",
|
||||||
"defaultScopeAddButton": "Add",
|
"defaultScopeAddButton": "Add",
|
||||||
|
|
@ -952,7 +952,7 @@
|
||||||
"welcomeChecklistNextTodayBody": "Run tools/today/propose.sh on a cron and the editorial card on the store auto-fills with operator-curated narratives.",
|
"welcomeChecklistNextTodayBody": "Run tools/today/propose.sh on a cron and the editorial card on the store auto-fills with operator-curated narratives.",
|
||||||
"welcomeChecklistNextTodayButton": "Open Today docs",
|
"welcomeChecklistNextTodayButton": "Open Today docs",
|
||||||
"welcomeChecklistNextModuleTitle": "Build your own module",
|
"welcomeChecklistNextModuleTitle": "Build your own module",
|
||||||
"welcomeChecklistNextModuleBody": "Generate a Rust+WASM scaffold with `chain new module <name>`. The module-sdk handles the WIT plumbing; you write a typed invoke.",
|
"welcomeChecklistNextModuleBody": "Generate a Rust+WASM scaffold with chain new module <name>. The module-sdk handles the WIT plumbing; you write a typed invoke.",
|
||||||
"welcomeChecklistNextModuleButton": "Read the docs",
|
"welcomeChecklistNextModuleButton": "Read the docs",
|
||||||
"auditGroupToday": "TODAY",
|
"auditGroupToday": "TODAY",
|
||||||
"auditGroupYesterday": "YESTERDAY",
|
"auditGroupYesterday": "YESTERDAY",
|
||||||
|
|
@ -1051,15 +1051,15 @@
|
||||||
"errNotFoundHint": "The item you asked for isn't here — it may have been removed or never existed.",
|
"errNotFoundHint": "The item you asked for isn't here — it may have been removed or never existed.",
|
||||||
"errAlreadyExists": "Already exists.",
|
"errAlreadyExists": "Already exists.",
|
||||||
"errPermissionDenied": "Permission denied.",
|
"errPermissionDenied": "Permission denied.",
|
||||||
"errPermissionDeniedHint": "The hub's operator policy blocks this action. Check `~/.chain/config.yaml`.",
|
"errPermissionDeniedHint": "The hub's operator policy blocks this action. Check ~/.chain/config.yaml.",
|
||||||
"errFailedPrecondition": "Setup issue blocked this.",
|
"errFailedPrecondition": "Setup issue blocked this.",
|
||||||
"errFailedPreconditionHint": "The hub couldn't proceed because something it needs isn't ready. The detail below explains what.",
|
"errFailedPreconditionHint": "The hub couldn't proceed because something it needs isn't ready. The detail below explains what.",
|
||||||
"errInternal": "Unexpected internal error.",
|
"errInternal": "Unexpected internal error.",
|
||||||
"errInternalHint": "Check the hub logs at `~/.chain/logs/`. If this repeats, please report it.",
|
"errInternalHint": "Check the hub logs at ~/.chain/logs/. If this repeats, please report it.",
|
||||||
"errUnavailable": "Hub not reachable.",
|
"errUnavailable": "Hub not reachable.",
|
||||||
"errUnavailableHint": "Make sure `chain serve` (or `chain daemon start`) is running and the daemon endpoint matches Studio's settings.",
|
"errUnavailableHint": "Make sure chain serve (or chain daemon start) is running and the daemon endpoint matches Studio's settings.",
|
||||||
"errUnauthenticated": "Authentication required.",
|
"errUnauthenticated": "Authentication required.",
|
||||||
"errUnauthenticatedHint": "Set `CHAIN_REGISTRY_TOKEN` or sign in through Settings before retrying.",
|
"errUnauthenticatedHint": "Set CHAIN_REGISTRY_TOKEN or sign in through Settings before retrying.",
|
||||||
"errCopyDetail": "Copy detail",
|
"errCopyDetail": "Copy detail",
|
||||||
"errDetailCopied": "Detail copied to clipboard.",
|
"errDetailCopied": "Detail copied to clipboard.",
|
||||||
"flowsOutputUnknown": "Output payload variant not recognised.",
|
"flowsOutputUnknown": "Output payload variant not recognised.",
|
||||||
|
|
@ -1288,7 +1288,7 @@
|
||||||
"doctorStatusUnknown": "Daemon status: …",
|
"doctorStatusUnknown": "Daemon status: …",
|
||||||
"doctorPillRunning": "running",
|
"doctorPillRunning": "running",
|
||||||
"doctorPillStopped": "stopped",
|
"doctorPillStopped": "stopped",
|
||||||
"doctorDaemonControlHint": "Studio shells out to the platform binary — mirrors `chain daemon …` exactly so the CLI and UI stay in lockstep.",
|
"doctorDaemonControlHint": "Studio shells out to the platform binary — mirrors chain daemon … exactly so the CLI and UI stay in lockstep.",
|
||||||
"doctorDaemonControlWorking": "Working…",
|
"doctorDaemonControlWorking": "Working…",
|
||||||
"doctorPathLog": "Log",
|
"doctorPathLog": "Log",
|
||||||
"doctorPathConfig": "Config",
|
"doctorPathConfig": "Config",
|
||||||
|
|
@ -1296,7 +1296,7 @@
|
||||||
"doctorPathModules": "Modules dir",
|
"doctorPathModules": "Modules dir",
|
||||||
"doctorPathFlows": "Flows dir",
|
"doctorPathFlows": "Flows dir",
|
||||||
"doctorPathPid": "PID file",
|
"doctorPathPid": "PID file",
|
||||||
"doctorPathsEmpty": "Daemon did not report file paths. Update the running hub via `chain daemon restart`.",
|
"doctorPathsEmpty": "Daemon did not report file paths. Update the running hub via chain daemon restart.",
|
||||||
"doctorOpenError": "Could not open: {detail}",
|
"doctorOpenError": "Could not open: {detail}",
|
||||||
"@doctorOpenError": {
|
"@doctorOpenError": {
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
|
|
@ -1313,7 +1313,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"doctorUpdateBody": "Channel {channel} now offers {version}. Apply via the button — Studio shells out to `chain update apply --channel {channel}`.",
|
"doctorUpdateBody": "Channel {channel} now offers {version}. Apply via the button — Studio shells out to chain update apply --channel {channel}.",
|
||||||
"@doctorUpdateBody": {
|
"@doctorUpdateBody": {
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
"channel": {
|
"channel": {
|
||||||
|
|
@ -1347,13 +1347,13 @@
|
||||||
"doctorApplying": "Applying…",
|
"doctorApplying": "Applying…",
|
||||||
"doctorApplyDone": "Update applied. Restart Studio to see the new daemon version.",
|
"doctorApplyDone": "Update applied. Restart Studio to see the new daemon version.",
|
||||||
"mcpHeader": "MCP CLIENTS",
|
"mcpHeader": "MCP CLIENTS",
|
||||||
"mcpHint": "External MCP servers federate their tools as `mcp.<server>.<tool>` capabilities. Configure once, see them in the Store.",
|
"mcpHint": "External MCP servers federate their tools as mcp.<server>.<tool> capabilities. Configure once, see them in the Store.",
|
||||||
"mcpEmpty": "No MCP servers configured. Click + to add one.",
|
"mcpEmpty": "No MCP servers configured. Click + to add one.",
|
||||||
"n8nHeader": "N8N ENDPOINTS",
|
"n8nHeader": "N8N ENDPOINTS",
|
||||||
"n8nHint": "Active n8n workflows surface as `n8n.<endpoint>.<slug>` capabilities. Configure once, see them in the Store.",
|
"n8nHint": "Active n8n workflows surface as n8n.<endpoint>.<slug> capabilities. Configure once, see them in the Store.",
|
||||||
"n8nEmpty": "No n8n endpoints configured. Click + to add one.",
|
"n8nEmpty": "No n8n endpoints configured. Click + to add one.",
|
||||||
"hubUnreachable": "Hub unreachable",
|
"hubUnreachable": "Hub unreachable",
|
||||||
"hubUnreachableHint": "Start the hub with `chain serve`.",
|
"hubUnreachableHint": "Start the hub with chain serve.",
|
||||||
"languageEnglish": "English",
|
"languageEnglish": "English",
|
||||||
"languageGerman": "Deutsch",
|
"languageGerman": "Deutsch",
|
||||||
"searchHint": "Jump anywhere — modules, store, flows, pages…",
|
"searchHint": "Jump anywhere — modules, store, flows, pages…",
|
||||||
|
|
@ -1408,7 +1408,7 @@
|
||||||
"systemAiEndpointLabel": "Endpoint URL (up to /v1)",
|
"systemAiEndpointLabel": "Endpoint URL (up to /v1)",
|
||||||
"systemAiApiKeyRequired": "API key env var (required)",
|
"systemAiApiKeyRequired": "API key env var (required)",
|
||||||
"systemAiApiKeyOptional": "API key env var (optional)",
|
"systemAiApiKeyOptional": "API key env var (optional)",
|
||||||
"systemAiApiKeyDisclaimer": "Studio never reads or stores the key value — only its env-var name. The hub reads `${name}` at request time.",
|
"systemAiApiKeyDisclaimer": "Studio never reads or stores the key value — only its env-var name. The hub reads ${name} at request time.",
|
||||||
"@systemAiApiKeyDisclaimer": {
|
"@systemAiApiKeyDisclaimer": {
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
"name": {
|
"name": {
|
||||||
|
|
@ -1647,7 +1647,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"addSourceTitle": "Add module source",
|
"addSourceTitle": "Add module source",
|
||||||
"addSourceIntro": "`{capability}` is not in the public store. Point the hub at a `.chain` bundle URL or a local bundle path; the hub downloads, verifies (sha256 + signature) and installs it.",
|
"addSourceIntro": "{capability} is not in the public store. Point the hub at a .chain bundle URL or a local bundle path; the hub downloads, verifies (sha256 + signature) and installs it.",
|
||||||
"@addSourceIntro": {
|
"@addSourceIntro": {
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
"capability": {"type": "String"}
|
"capability": {"type": "String"}
|
||||||
|
|
@ -1656,7 +1656,7 @@
|
||||||
"addSourceField": "URL or path to .chain bundle",
|
"addSourceField": "URL or path to .chain bundle",
|
||||||
"addSourceHint": "https://git.flemming.ai/your-org/your-module/releases/download/v0.1.0/foo-0.1.0.chain",
|
"addSourceHint": "https://git.flemming.ai/your-org/your-module/releases/download/v0.1.0/foo-0.1.0.chain",
|
||||||
"addSourceHowItWorksTitle": "How private modules work",
|
"addSourceHowItWorksTitle": "How private modules work",
|
||||||
"addSourceHowItWorksBody": "A module is a directory with a module.yaml + the WASM artifact. To share it: pack it (`chain pack <dir>`) and host the resulting `.chain` bundle anywhere (your own Forgejo / GitHub / S3). The hub installs by URL and verifies the signature against its trust store.\n\nDeveloping locally? Use the CLI — Studio cannot install from an unpacked directory (yet):",
|
"addSourceHowItWorksBody": "A module is a directory with a module.yaml + the WASM artifact. To share it: pack it (chain pack <dir>) and host the resulting .chain bundle anywhere (your own Forgejo / GitHub / S3). The hub installs by URL and verifies the signature against its trust store.\n\nDeveloping locally? Use the CLI — Studio cannot install from an unpacked directory (yet):",
|
||||||
"addSourceCliExample": "chain install --link /path/to/module",
|
"addSourceCliExample": "chain install --link /path/to/module",
|
||||||
"addSourceInstallButton": "Install",
|
"addSourceInstallButton": "Install",
|
||||||
"addSourceCancel": "Cancel",
|
"addSourceCancel": "Cancel",
|
||||||
|
|
@ -1684,12 +1684,12 @@
|
||||||
"detail": {"type": "String"}
|
"detail": {"type": "String"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"chainBinaryNotFound": "Could not find the `chain` program on this machine.",
|
"chainBinaryNotFound": "Could not find the chain program on this machine.",
|
||||||
"chainBinaryNotFoundHint": "Install the Ch∆In platform, or point Studio at an existing `chain` binary.",
|
"chainBinaryNotFoundHint": "Install the Ch∆In platform, or point Studio at an existing chain binary.",
|
||||||
"chainBinaryLocateButton": "Locate `chain` binary…",
|
"chainBinaryLocateButton": "Locate chain binary…",
|
||||||
"chainBinaryInstallDocsButton": "Open install guide",
|
"chainBinaryInstallDocsButton": "Open install guide",
|
||||||
"chainBinaryPickerTitle": "Select the `chain` binary",
|
"chainBinaryPickerTitle": "Select the chain binary",
|
||||||
"chainBinarySetOk": "Using `chain` binary at {path}",
|
"chainBinarySetOk": "Using chain binary at {path}",
|
||||||
"@chainBinarySetOk": {
|
"@chainBinarySetOk": {
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
"path": {"type": "String"}
|
"path": {"type": "String"}
|
||||||
|
|
@ -1719,7 +1719,7 @@
|
||||||
"detail": {"type": "String"}
|
"detail": {"type": "String"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"providerDescOllama": "Local `ollama serve`. Models stay on your machine. No API key needed.",
|
"providerDescOllama": "Local ollama serve. Models stay on your machine. No API key needed.",
|
||||||
"providerDescOpenai": "OpenAI hosted API. Requires an API key. Data leaves your machine.",
|
"providerDescOpenai": "OpenAI hosted API. Requires an API key. Data leaves your machine.",
|
||||||
"providerDescLmstudio": "Local LM Studio server. Models stay on your machine. No API key needed.",
|
"providerDescLmstudio": "Local LM Studio server. Models stay on your machine. No API key needed.",
|
||||||
"providerDescVllm": "Self-hosted vLLM or any other OpenAI-compatible server. Endpoint required.",
|
"providerDescVllm": "Self-hosted vLLM or any other OpenAI-compatible server. Endpoint required.",
|
||||||
|
|
|
||||||
|
|
@ -425,7 +425,7 @@ abstract class AppLocalizations {
|
||||||
/// No description provided for @errApprovalTimedOutHint.
|
/// No description provided for @errApprovalTimedOutHint.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'No reviewer decided within the configured time. Raise `timeout_seconds` on the approval step or alert the reviewer.'**
|
/// **'No reviewer decided within the configured time. Raise timeout_seconds on the approval step or alert the reviewer.'**
|
||||||
String get errApprovalTimedOutHint;
|
String get errApprovalTimedOutHint;
|
||||||
|
|
||||||
/// No description provided for @errOutputTooLarge.
|
/// No description provided for @errOutputTooLarge.
|
||||||
|
|
@ -437,7 +437,7 @@ abstract class AppLocalizations {
|
||||||
/// No description provided for @errOutputTooLargeHint.
|
/// No description provided for @errOutputTooLargeHint.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'Either trim the output (truncate text, downsample bytes) or raise `max_output_size_mb` in the operator config.'**
|
/// **'Either trim the output (truncate text, downsample bytes) or raise max_output_size_mb in the operator config.'**
|
||||||
String get errOutputTooLargeHint;
|
String get errOutputTooLargeHint;
|
||||||
|
|
||||||
/// No description provided for @errServiceUnavailableForStep.
|
/// No description provided for @errServiceUnavailableForStep.
|
||||||
|
|
@ -449,7 +449,7 @@ abstract class AppLocalizations {
|
||||||
/// No description provided for @errServiceUnavailableForStepHint.
|
/// No description provided for @errServiceUnavailableForStepHint.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'The module requires a service (e.g. ollama, playwright) the operator hasn\'t declared. Add it under `services:` in ~/.chain/config.yaml.'**
|
/// **'The module requires a service (e.g. ollama, playwright) the operator hasn\'t declared. Add it under services: in ~/.chain/config.yaml.'**
|
||||||
String get errServiceUnavailableForStepHint;
|
String get errServiceUnavailableForStepHint;
|
||||||
|
|
||||||
/// No description provided for @errMissingValue.
|
/// No description provided for @errMissingValue.
|
||||||
|
|
@ -461,7 +461,7 @@ abstract class AppLocalizations {
|
||||||
/// No description provided for @errMissingValueHint.
|
/// No description provided for @errMissingValueHint.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'The step expected an input that wasn\'t wired up — either supply it at run time or fix the upstream `\$ref`.'**
|
/// **'The step expected an input that wasn\'t wired up — either supply it at run time or fix the upstream \$ref.'**
|
||||||
String get errMissingValueHint;
|
String get errMissingValueHint;
|
||||||
|
|
||||||
/// No description provided for @errMcpUnreachable.
|
/// No description provided for @errMcpUnreachable.
|
||||||
|
|
@ -1115,7 +1115,7 @@ abstract class AppLocalizations {
|
||||||
/// No description provided for @addMcpIntro.
|
/// No description provided for @addMcpIntro.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'Tools the server advertises via `tools/list` appear in the Store as `mcp.<name>.<tool>` capabilities.'**
|
/// **'Tools the server advertises via tools/list appear in the Store as mcp.<name>.<tool> capabilities.'**
|
||||||
String get addMcpIntro;
|
String get addMcpIntro;
|
||||||
|
|
||||||
/// No description provided for @addMcpSuggestionsLabel.
|
/// No description provided for @addMcpSuggestionsLabel.
|
||||||
|
|
@ -1181,7 +1181,7 @@ abstract class AppLocalizations {
|
||||||
/// No description provided for @addN8nIntro.
|
/// No description provided for @addN8nIntro.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'Active workflows surface in the Store as `n8n.<name>.<workflow_slug>` capabilities.'**
|
/// **'Active workflows surface in the Store as n8n.<name>.<workflow_slug> capabilities.'**
|
||||||
String get addN8nIntro;
|
String get addN8nIntro;
|
||||||
|
|
||||||
/// No description provided for @addN8nNameLabel.
|
/// No description provided for @addN8nNameLabel.
|
||||||
|
|
@ -2351,7 +2351,7 @@ abstract class AppLocalizations {
|
||||||
/// No description provided for @modulesNoneHint.
|
/// No description provided for @modulesNoneHint.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'Run `chain install <capability-name>` or check ~/.chain/modules/.'**
|
/// **'Run chain install <capability-name> or check ~/.chain/modules/.'**
|
||||||
String get modulesNoneHint;
|
String get modulesNoneHint;
|
||||||
|
|
||||||
/// No description provided for @modulesReloadTooltip.
|
/// No description provided for @modulesReloadTooltip.
|
||||||
|
|
@ -2399,7 +2399,7 @@ abstract class AppLocalizations {
|
||||||
/// No description provided for @modulesUninstallBody.
|
/// No description provided for @modulesUninstallBody.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'Removes {name} v{version} from this hub. Flows that reference it will fail at the next run. A `module.uninstalled` audit event is recorded.'**
|
/// **'Removes {name} v{version} from this hub. Flows that reference it will fail at the next run. A module.uninstalled audit event is recorded.'**
|
||||||
String modulesUninstallBody(String name, String version);
|
String modulesUninstallBody(String name, String version);
|
||||||
|
|
||||||
/// No description provided for @modulesUninstalledToast.
|
/// No description provided for @modulesUninstalledToast.
|
||||||
|
|
@ -2465,7 +2465,7 @@ abstract class AppLocalizations {
|
||||||
/// No description provided for @flowsNoneHint.
|
/// No description provided for @flowsNoneHint.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'Save a flow with `chain admin flows save <name> <flow.yaml>` and it shows up here.'**
|
/// **'Save a flow with chain admin flows save <name> <flow.yaml> and it shows up here.'**
|
||||||
String get flowsNoneHint;
|
String get flowsNoneHint;
|
||||||
|
|
||||||
/// No description provided for @flowsRunDialogTitle.
|
/// No description provided for @flowsRunDialogTitle.
|
||||||
|
|
@ -2909,7 +2909,7 @@ abstract class AppLocalizations {
|
||||||
/// No description provided for @uninstallVersionPickerBody.
|
/// No description provided for @uninstallVersionPickerBody.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'Several versions of `{module}` are installed side-by-side. Select the exact version to remove — the others stay in place.'**
|
/// **'Several versions of {module} are installed side-by-side. Select the exact version to remove — the others stay in place.'**
|
||||||
String uninstallVersionPickerBody(String module);
|
String uninstallVersionPickerBody(String module);
|
||||||
|
|
||||||
/// No description provided for @uninstallVersionPickerContinue.
|
/// No description provided for @uninstallVersionPickerContinue.
|
||||||
|
|
@ -2927,7 +2927,7 @@ abstract class AppLocalizations {
|
||||||
/// No description provided for @defaultScopeBlurb.
|
/// No description provided for @defaultScopeBlurb.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'Ordered list of publisher segments the hub consults when a flow names a capability without an explicit `<provider>/` prefix. First match wins — promote the segments your team uses most to the top. Catalog-known publishers appear as chips; arbitrary entries are accepted for private segments.'**
|
/// **'Ordered list of publisher segments the hub consults when a flow names a capability without an explicit <provider>/ prefix. First match wins — promote the segments your team uses most to the top. Catalog-known publishers appear as chips; arbitrary entries are accepted for private segments.'**
|
||||||
String get defaultScopeBlurb;
|
String get defaultScopeBlurb;
|
||||||
|
|
||||||
/// No description provided for @defaultScopeAddLabel.
|
/// No description provided for @defaultScopeAddLabel.
|
||||||
|
|
@ -3095,7 +3095,7 @@ abstract class AppLocalizations {
|
||||||
/// No description provided for @welcomeChecklistNextModuleBody.
|
/// No description provided for @welcomeChecklistNextModuleBody.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'Generate a Rust+WASM scaffold with `chain new module <name>`. The module-sdk handles the WIT plumbing; you write a typed invoke.'**
|
/// **'Generate a Rust+WASM scaffold with chain new module <name>. The module-sdk handles the WIT plumbing; you write a typed invoke.'**
|
||||||
String get welcomeChecklistNextModuleBody;
|
String get welcomeChecklistNextModuleBody;
|
||||||
|
|
||||||
/// No description provided for @welcomeChecklistNextModuleButton.
|
/// No description provided for @welcomeChecklistNextModuleButton.
|
||||||
|
|
@ -3275,7 +3275,7 @@ abstract class AppLocalizations {
|
||||||
/// No description provided for @errPermissionDeniedHint.
|
/// No description provided for @errPermissionDeniedHint.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'The hub\'s operator policy blocks this action. Check `~/.chain/config.yaml`.'**
|
/// **'The hub\'s operator policy blocks this action. Check ~/.chain/config.yaml.'**
|
||||||
String get errPermissionDeniedHint;
|
String get errPermissionDeniedHint;
|
||||||
|
|
||||||
/// No description provided for @errFailedPrecondition.
|
/// No description provided for @errFailedPrecondition.
|
||||||
|
|
@ -3299,7 +3299,7 @@ abstract class AppLocalizations {
|
||||||
/// No description provided for @errInternalHint.
|
/// No description provided for @errInternalHint.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'Check the hub logs at `~/.chain/logs/`. If this repeats, please report it.'**
|
/// **'Check the hub logs at ~/.chain/logs/. If this repeats, please report it.'**
|
||||||
String get errInternalHint;
|
String get errInternalHint;
|
||||||
|
|
||||||
/// No description provided for @errUnavailable.
|
/// No description provided for @errUnavailable.
|
||||||
|
|
@ -3311,7 +3311,7 @@ abstract class AppLocalizations {
|
||||||
/// No description provided for @errUnavailableHint.
|
/// No description provided for @errUnavailableHint.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'Make sure `chain serve` (or `chain daemon start`) is running and the daemon endpoint matches Studio\'s settings.'**
|
/// **'Make sure chain serve (or chain daemon start) is running and the daemon endpoint matches Studio\'s settings.'**
|
||||||
String get errUnavailableHint;
|
String get errUnavailableHint;
|
||||||
|
|
||||||
/// No description provided for @errUnauthenticated.
|
/// No description provided for @errUnauthenticated.
|
||||||
|
|
@ -3323,7 +3323,7 @@ abstract class AppLocalizations {
|
||||||
/// No description provided for @errUnauthenticatedHint.
|
/// No description provided for @errUnauthenticatedHint.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'Set `CHAIN_REGISTRY_TOKEN` or sign in through Settings before retrying.'**
|
/// **'Set CHAIN_REGISTRY_TOKEN or sign in through Settings before retrying.'**
|
||||||
String get errUnauthenticatedHint;
|
String get errUnauthenticatedHint;
|
||||||
|
|
||||||
/// No description provided for @errCopyDetail.
|
/// No description provided for @errCopyDetail.
|
||||||
|
|
@ -3821,7 +3821,7 @@ abstract class AppLocalizations {
|
||||||
/// No description provided for @doctorDaemonControlHint.
|
/// No description provided for @doctorDaemonControlHint.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'Studio shells out to the platform binary — mirrors `chain daemon …` exactly so the CLI and UI stay in lockstep.'**
|
/// **'Studio shells out to the platform binary — mirrors chain daemon … exactly so the CLI and UI stay in lockstep.'**
|
||||||
String get doctorDaemonControlHint;
|
String get doctorDaemonControlHint;
|
||||||
|
|
||||||
/// No description provided for @doctorDaemonControlWorking.
|
/// No description provided for @doctorDaemonControlWorking.
|
||||||
|
|
@ -3869,7 +3869,7 @@ abstract class AppLocalizations {
|
||||||
/// No description provided for @doctorPathsEmpty.
|
/// No description provided for @doctorPathsEmpty.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'Daemon did not report file paths. Update the running hub via `chain daemon restart`.'**
|
/// **'Daemon did not report file paths. Update the running hub via chain daemon restart.'**
|
||||||
String get doctorPathsEmpty;
|
String get doctorPathsEmpty;
|
||||||
|
|
||||||
/// No description provided for @doctorOpenError.
|
/// No description provided for @doctorOpenError.
|
||||||
|
|
@ -3887,7 +3887,7 @@ abstract class AppLocalizations {
|
||||||
/// No description provided for @doctorUpdateBody.
|
/// No description provided for @doctorUpdateBody.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'Channel {channel} now offers {version}. Apply via the button — Studio shells out to `chain update apply --channel {channel}`.'**
|
/// **'Channel {channel} now offers {version}. Apply via the button — Studio shells out to chain update apply --channel {channel}.'**
|
||||||
String doctorUpdateBody(String channel, String version);
|
String doctorUpdateBody(String channel, String version);
|
||||||
|
|
||||||
/// No description provided for @doctorUpdateUnreachable.
|
/// No description provided for @doctorUpdateUnreachable.
|
||||||
|
|
@ -3947,7 +3947,7 @@ abstract class AppLocalizations {
|
||||||
/// No description provided for @mcpHint.
|
/// No description provided for @mcpHint.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'External MCP servers federate their tools as `mcp.<server>.<tool>` capabilities. Configure once, see them in the Store.'**
|
/// **'External MCP servers federate their tools as mcp.<server>.<tool> capabilities. Configure once, see them in the Store.'**
|
||||||
String get mcpHint;
|
String get mcpHint;
|
||||||
|
|
||||||
/// No description provided for @mcpEmpty.
|
/// No description provided for @mcpEmpty.
|
||||||
|
|
@ -3965,7 +3965,7 @@ abstract class AppLocalizations {
|
||||||
/// No description provided for @n8nHint.
|
/// No description provided for @n8nHint.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'Active n8n workflows surface as `n8n.<endpoint>.<slug>` capabilities. Configure once, see them in the Store.'**
|
/// **'Active n8n workflows surface as n8n.<endpoint>.<slug> capabilities. Configure once, see them in the Store.'**
|
||||||
String get n8nHint;
|
String get n8nHint;
|
||||||
|
|
||||||
/// No description provided for @n8nEmpty.
|
/// No description provided for @n8nEmpty.
|
||||||
|
|
@ -3983,7 +3983,7 @@ abstract class AppLocalizations {
|
||||||
/// No description provided for @hubUnreachableHint.
|
/// No description provided for @hubUnreachableHint.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'Start the hub with `chain serve`.'**
|
/// **'Start the hub with chain serve.'**
|
||||||
String get hubUnreachableHint;
|
String get hubUnreachableHint;
|
||||||
|
|
||||||
/// No description provided for @languageEnglish.
|
/// No description provided for @languageEnglish.
|
||||||
|
|
@ -4145,7 +4145,7 @@ abstract class AppLocalizations {
|
||||||
/// No description provided for @systemAiApiKeyDisclaimer.
|
/// No description provided for @systemAiApiKeyDisclaimer.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'Studio never reads or stores the key value — only its env-var name. The hub reads `\${name}` at request time.'**
|
/// **'Studio never reads or stores the key value — only its env-var name. The hub reads \${name} at request time.'**
|
||||||
String systemAiApiKeyDisclaimer(String name);
|
String systemAiApiKeyDisclaimer(String name);
|
||||||
|
|
||||||
/// No description provided for @systemAiTestConnection.
|
/// No description provided for @systemAiTestConnection.
|
||||||
|
|
@ -4919,7 +4919,7 @@ abstract class AppLocalizations {
|
||||||
/// No description provided for @addSourceIntro.
|
/// No description provided for @addSourceIntro.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'`{capability}` is not in the public store. Point the hub at a `.chain` bundle URL or a local bundle path; the hub downloads, verifies (sha256 + signature) and installs it.'**
|
/// **'{capability} is not in the public store. Point the hub at a .chain bundle URL or a local bundle path; the hub downloads, verifies (sha256 + signature) and installs it.'**
|
||||||
String addSourceIntro(String capability);
|
String addSourceIntro(String capability);
|
||||||
|
|
||||||
/// No description provided for @addSourceField.
|
/// No description provided for @addSourceField.
|
||||||
|
|
@ -4943,7 +4943,7 @@ abstract class AppLocalizations {
|
||||||
/// No description provided for @addSourceHowItWorksBody.
|
/// No description provided for @addSourceHowItWorksBody.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'A module is a directory with a module.yaml + the WASM artifact. To share it: pack it (`chain pack <dir>`) and host the resulting `.chain` bundle anywhere (your own Forgejo / GitHub / S3). The hub installs by URL and verifies the signature against its trust store.\n\nDeveloping locally? Use the CLI — Studio cannot install from an unpacked directory (yet):'**
|
/// **'A module is a directory with a module.yaml + the WASM artifact. To share it: pack it (chain pack <dir>) and host the resulting .chain bundle anywhere (your own Forgejo / GitHub / S3). The hub installs by URL and verifies the signature against its trust store.\n\nDeveloping locally? Use the CLI — Studio cannot install from an unpacked directory (yet):'**
|
||||||
String get addSourceHowItWorksBody;
|
String get addSourceHowItWorksBody;
|
||||||
|
|
||||||
/// No description provided for @addSourceCliExample.
|
/// No description provided for @addSourceCliExample.
|
||||||
|
|
@ -5021,19 +5021,19 @@ abstract class AppLocalizations {
|
||||||
/// No description provided for @chainBinaryNotFound.
|
/// No description provided for @chainBinaryNotFound.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'Could not find the `chain` program on this machine.'**
|
/// **'Could not find the chain program on this machine.'**
|
||||||
String get chainBinaryNotFound;
|
String get chainBinaryNotFound;
|
||||||
|
|
||||||
/// No description provided for @chainBinaryNotFoundHint.
|
/// No description provided for @chainBinaryNotFoundHint.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'Install the Ch∆In platform, or point Studio at an existing `chain` binary.'**
|
/// **'Install the Ch∆In platform, or point Studio at an existing chain binary.'**
|
||||||
String get chainBinaryNotFoundHint;
|
String get chainBinaryNotFoundHint;
|
||||||
|
|
||||||
/// No description provided for @chainBinaryLocateButton.
|
/// No description provided for @chainBinaryLocateButton.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'Locate `chain` binary…'**
|
/// **'Locate chain binary…'**
|
||||||
String get chainBinaryLocateButton;
|
String get chainBinaryLocateButton;
|
||||||
|
|
||||||
/// No description provided for @chainBinaryInstallDocsButton.
|
/// No description provided for @chainBinaryInstallDocsButton.
|
||||||
|
|
@ -5045,13 +5045,13 @@ abstract class AppLocalizations {
|
||||||
/// No description provided for @chainBinaryPickerTitle.
|
/// No description provided for @chainBinaryPickerTitle.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'Select the `chain` binary'**
|
/// **'Select the chain binary'**
|
||||||
String get chainBinaryPickerTitle;
|
String get chainBinaryPickerTitle;
|
||||||
|
|
||||||
/// No description provided for @chainBinarySetOk.
|
/// No description provided for @chainBinarySetOk.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'Using `chain` binary at {path}'**
|
/// **'Using chain binary at {path}'**
|
||||||
String chainBinarySetOk(String path);
|
String chainBinarySetOk(String path);
|
||||||
|
|
||||||
/// No description provided for @sysAiFixParse.
|
/// No description provided for @sysAiFixParse.
|
||||||
|
|
@ -5111,7 +5111,7 @@ abstract class AppLocalizations {
|
||||||
/// No description provided for @providerDescOllama.
|
/// No description provided for @providerDescOllama.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'Local `ollama serve`. Models stay on your machine. No API key needed.'**
|
/// **'Local ollama serve. Models stay on your machine. No API key needed.'**
|
||||||
String get providerDescOllama;
|
String get providerDescOllama;
|
||||||
|
|
||||||
/// No description provided for @providerDescOpenai.
|
/// No description provided for @providerDescOpenai.
|
||||||
|
|
|
||||||
|
|
@ -195,7 +195,7 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get errApprovalTimedOutHint =>
|
String get errApprovalTimedOutHint =>
|
||||||
'Es wurde nicht rechtzeitig entschieden. Entweder `timeout_seconds` am Freigabe-Step erhöhen oder den Reviewer informieren.';
|
'Es wurde nicht rechtzeitig entschieden. Entweder timeout_seconds am Freigabe-Step erhöhen oder den Reviewer informieren.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get errOutputTooLarge =>
|
String get errOutputTooLarge =>
|
||||||
|
|
@ -203,21 +203,21 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get errOutputTooLargeHint =>
|
String get errOutputTooLargeHint =>
|
||||||
'Entweder Output kürzen (Text truncaten, Bytes komprimieren) oder `max_output_size_mb` in der Operator-Config erhöhen.';
|
'Entweder Output kürzen (Text truncaten, Bytes komprimieren) oder max_output_size_mb in der Operator-Config erhöhen.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get errServiceUnavailableForStep => 'Host-Service nicht konfiguriert.';
|
String get errServiceUnavailableForStep => 'Host-Service nicht konfiguriert.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get errServiceUnavailableForStepHint =>
|
String get errServiceUnavailableForStepHint =>
|
||||||
'Das Modul braucht einen Service (z.B. ollama, playwright), den der Operator nicht deklariert hat. Tragen Sie ihn unter `services:` in ~/.chain/config.yaml ein.';
|
'Das Modul braucht einen Service (z.B. ollama, playwright), den der Operator nicht deklariert hat. Tragen Sie ihn unter services: in ~/.chain/config.yaml ein.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get errMissingValue => 'Pflichtwert fehlt.';
|
String get errMissingValue => 'Pflichtwert fehlt.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get errMissingValueHint =>
|
String get errMissingValueHint =>
|
||||||
'Der Step erwartet eine Eingabe, die nicht verdrahtet ist — entweder zur Laufzeit liefern oder den vorgelagerten `\$ref` korrigieren.';
|
'Der Step erwartet eine Eingabe, die nicht verdrahtet ist — entweder zur Laufzeit liefern oder den vorgelagerten \$ref korrigieren.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get errMcpUnreachable => 'MCP-Endpunkt nicht erreichbar.';
|
String get errMcpUnreachable => 'MCP-Endpunkt nicht erreichbar.';
|
||||||
|
|
@ -599,7 +599,7 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get addMcpIntro =>
|
String get addMcpIntro =>
|
||||||
'Tools, die der Server via `tools/list` anbietet, erscheinen im Store als `mcp.<name>.<tool>`-Fähigkeiten.';
|
'Tools, die der Server via tools/list anbietet, erscheinen im Store als mcp.<name>.<tool>-Fähigkeiten.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get addMcpSuggestionsLabel => 'Vorschläge — zum Vorausfüllen klicken';
|
String get addMcpSuggestionsLabel => 'Vorschläge — zum Vorausfüllen klicken';
|
||||||
|
|
@ -633,7 +633,7 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get addN8nIntro =>
|
String get addN8nIntro =>
|
||||||
'Aktive Workflows erscheinen im Store als `n8n.<name>.<workflow_slug>`-Fähigkeiten.';
|
'Aktive Workflows erscheinen im Store als n8n.<name>.<workflow_slug>-Fähigkeiten.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get addN8nNameLabel => 'Name (keine Punkte)';
|
String get addN8nNameLabel => 'Name (keine Punkte)';
|
||||||
|
|
@ -1331,7 +1331,7 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get modulesNoneHint =>
|
String get modulesNoneHint =>
|
||||||
'`chain install <capability-name>` ausführen oder ~/.chain/modules/ prüfen.';
|
'chain install <capability-name> ausführen oder ~/.chain/modules/ prüfen.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get modulesReloadTooltip => 'Aktualisieren';
|
String get modulesReloadTooltip => 'Aktualisieren';
|
||||||
|
|
@ -1358,7 +1358,7 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String modulesUninstallBody(String name, String version) {
|
String modulesUninstallBody(String name, String version) {
|
||||||
return 'Entfernt $name v$version von diesem Hub. Flows, die es verwenden, schlagen beim nächsten Lauf fehl. Ein `module.uninstalled`-Audit-Event wird festgehalten.';
|
return 'Entfernt $name v$version von diesem Hub. Flows, die es verwenden, schlagen beim nächsten Lauf fehl. Ein module.uninstalled-Audit-Event wird festgehalten.';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|
@ -1399,7 +1399,7 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get flowsNoneHint =>
|
String get flowsNoneHint =>
|
||||||
'Flow speichern mit `chain admin flows save <name> <flow.yaml>`, dann taucht er hier auf.';
|
'Flow speichern mit chain admin flows save <name> <flow.yaml>, dann taucht er hier auf.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String flowsRunDialogTitle(String name) {
|
String flowsRunDialogTitle(String name) {
|
||||||
|
|
@ -1673,7 +1673,7 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String uninstallVersionPickerBody(String module) {
|
String uninstallVersionPickerBody(String module) {
|
||||||
return 'Mehrere Versionen von `$module` sind parallel installiert. Wählen Sie genau die Version aus, die entfernt werden soll — die anderen bleiben bestehen.';
|
return 'Mehrere Versionen von $module sind parallel installiert. Wählen Sie genau die Version aus, die entfernt werden soll — die anderen bleiben bestehen.';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|
@ -1684,7 +1684,7 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get defaultScopeBlurb =>
|
String get defaultScopeBlurb =>
|
||||||
'Geordnete Liste von Publisher-Segmenten, die der Hub konsultiert, wenn ein Flow eine Capability ohne explizites `<provider>/`-Präfix benennt. Erster Treffer gewinnt — die Segmente, die euer Team am häufigsten nutzt, gehören nach oben. Katalog-bekannte Publisher erscheinen als Chips; private Segmente lassen sich frei eintragen.';
|
'Geordnete Liste von Publisher-Segmenten, die der Hub konsultiert, wenn ein Flow eine Capability ohne explizites <provider>/-Präfix benennt. Erster Treffer gewinnt — die Segmente, die euer Team am häufigsten nutzt, gehören nach oben. Katalog-bekannte Publisher erscheinen als Chips; private Segmente lassen sich frei eintragen.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get defaultScopeAddLabel => 'Publisher-Segment hinzufügen';
|
String get defaultScopeAddLabel => 'Publisher-Segment hinzufügen';
|
||||||
|
|
@ -1779,7 +1779,7 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get welcomeChecklistNextModuleBody =>
|
String get welcomeChecklistNextModuleBody =>
|
||||||
'Für Entwickler: Mit `chain new module <name>` entsteht ein fertiges Modul-Gerüst (Rust+WASM). Das module-sdk übernimmt die technische Anbindung; Sie schreiben nur die eigentliche Logik.';
|
'Für Entwickler: Mit chain new module <name> entsteht ein fertiges Modul-Gerüst (Rust+WASM). Das module-sdk übernimmt die technische Anbindung; Sie schreiben nur die eigentliche Logik.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get welcomeChecklistNextModuleButton => 'Doku lesen';
|
String get welcomeChecklistNextModuleButton => 'Doku lesen';
|
||||||
|
|
@ -1896,7 +1896,7 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get errPermissionDeniedHint =>
|
String get errPermissionDeniedHint =>
|
||||||
'Die Operator-Policy des Hubs blockiert diese Aktion. `~/.chain/config.yaml` prüfen.';
|
'Die Operator-Policy des Hubs blockiert diese Aktion. ~/.chain/config.yaml prüfen.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get errFailedPrecondition => 'Setup-Problem hat das blockiert.';
|
String get errFailedPrecondition => 'Setup-Problem hat das blockiert.';
|
||||||
|
|
@ -1910,21 +1910,21 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get errInternalHint =>
|
String get errInternalHint =>
|
||||||
'Hub-Logs unter `~/.chain/logs/` prüfen. Wenn das öfter passiert, bitte melden.';
|
'Hub-Logs unter ~/.chain/logs/ prüfen. Wenn das öfter passiert, bitte melden.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get errUnavailable => 'Hub nicht erreichbar.';
|
String get errUnavailable => 'Hub nicht erreichbar.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get errUnavailableHint =>
|
String get errUnavailableHint =>
|
||||||
'Sicherstellen, dass `chain serve` (oder `chain daemon start`) läuft und der Daemon-Endpunkt zu Studios Einstellungen passt.';
|
'Sicherstellen, dass chain serve (oder chain daemon start) läuft und der Daemon-Endpunkt zu Studios Einstellungen passt.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get errUnauthenticated => 'Authentifizierung erforderlich.';
|
String get errUnauthenticated => 'Authentifizierung erforderlich.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get errUnauthenticatedHint =>
|
String get errUnauthenticatedHint =>
|
||||||
'`CHAIN_REGISTRY_TOKEN` setzen oder in den Einstellungen anmelden, dann erneut versuchen.';
|
'CHAIN_REGISTRY_TOKEN setzen oder in den Einstellungen anmelden, dann erneut versuchen.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get errCopyDetail => 'Detail kopieren';
|
String get errCopyDetail => 'Detail kopieren';
|
||||||
|
|
@ -2247,7 +2247,7 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get doctorDaemonControlHint =>
|
String get doctorDaemonControlHint =>
|
||||||
'Studio ruft das Platform-Binary auf — entspricht `chain daemon …`, sodass CLI und UI im Gleichschritt bleiben.';
|
'Studio ruft das Platform-Binary auf — entspricht chain daemon …, sodass CLI und UI im Gleichschritt bleiben.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get doctorDaemonControlWorking => 'Wird ausgeführt…';
|
String get doctorDaemonControlWorking => 'Wird ausgeführt…';
|
||||||
|
|
@ -2272,7 +2272,7 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get doctorPathsEmpty =>
|
String get doctorPathsEmpty =>
|
||||||
'Daemon hat keine Datei-Pfade gemeldet. Hub aktualisieren via `chain daemon restart`.';
|
'Daemon hat keine Datei-Pfade gemeldet. Hub aktualisieren via chain daemon restart.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String doctorOpenError(String detail) {
|
String doctorOpenError(String detail) {
|
||||||
|
|
@ -2286,7 +2286,7 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String doctorUpdateBody(String channel, String version) {
|
String doctorUpdateBody(String channel, String version) {
|
||||||
return 'Kanal $channel bietet jetzt $version. Per Button anwenden — Studio ruft `chain update apply --channel $channel` auf.';
|
return 'Kanal $channel bietet jetzt $version. Per Button anwenden — Studio ruft chain update apply --channel $channel auf.';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|
@ -2323,7 +2323,7 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get mcpHint =>
|
String get mcpHint =>
|
||||||
'Externe MCP-Server bringen ihre Tools als `mcp.<server>.<tool>` Fähigkeiten ein. Einmal konfigurieren, im Store sichtbar.';
|
'Externe MCP-Server bringen ihre Tools als mcp.<server>.<tool> Fähigkeiten ein. Einmal konfigurieren, im Store sichtbar.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get mcpEmpty =>
|
String get mcpEmpty =>
|
||||||
|
|
@ -2334,7 +2334,7 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get n8nHint =>
|
String get n8nHint =>
|
||||||
'Aktive n8n-Workflows erscheinen als `n8n.<endpoint>.<slug>` Fähigkeiten. Einmal konfigurieren, im Store sichtbar.';
|
'Aktive n8n-Workflows erscheinen als n8n.<endpoint>.<slug> Fähigkeiten. Einmal konfigurieren, im Store sichtbar.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get n8nEmpty =>
|
String get n8nEmpty =>
|
||||||
|
|
@ -2344,7 +2344,7 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||||
String get hubUnreachable => 'Hub nicht erreichbar';
|
String get hubUnreachable => 'Hub nicht erreichbar';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get hubUnreachableHint => 'Hub starten mit `chain serve`.';
|
String get hubUnreachableHint => 'Hub starten mit chain serve.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get languageEnglish => 'English';
|
String get languageEnglish => 'English';
|
||||||
|
|
@ -2437,7 +2437,7 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String systemAiApiKeyDisclaimer(String name) {
|
String systemAiApiKeyDisclaimer(String name) {
|
||||||
return 'Studio liest oder speichert den Key-Wert nie — nur den Namen der Umgebungsvariable. Der Hub liest `\$$name` zur Anfragezeit.';
|
return 'Studio liest oder speichert den Key-Wert nie — nur den Namen der Umgebungsvariable. Der Hub liest \$$name zur Anfragezeit.';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|
@ -2894,7 +2894,7 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String addSourceIntro(String capability) {
|
String addSourceIntro(String capability) {
|
||||||
return '`$capability` ist nicht im öffentlichen Store. Zeig dem Hub eine `.chain`-Bundle-URL oder einen lokalen Bundle-Pfad — der Hub lädt es herunter, prüft (sha256 + Signatur) und installiert.';
|
return '$capability ist nicht im öffentlichen Store. Geben Sie dem Hub eine .chain-Bundle-URL oder einen lokalen Bundle-Pfad — der Hub lädt es herunter, prüft (sha256 + Signatur) und installiert.';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|
@ -2909,7 +2909,7 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get addSourceHowItWorksBody =>
|
String get addSourceHowItWorksBody =>
|
||||||
'Ein Modul ist ein Verzeichnis mit module.yaml + WASM-Artefakt. Zum Teilen: `chain pack <verzeichnis>` baut ein `.chain`-Bundle, das Sie beliebig hosten können (eigene Forgejo / GitHub / S3). Der Hub installiert per URL und prüft die Signatur gegen seinen Trust-Store.\n\nLokal entwickeln? Nimm das CLI — Studio installiert (noch) nicht aus einem unverpackten Verzeichnis:';
|
'Ein Modul ist ein Verzeichnis mit module.yaml + WASM-Artefakt. Zum Teilen: chain pack <verzeichnis> baut ein .chain-Bundle, das Sie beliebig hosten können (eigene Forgejo / GitHub / S3). Der Hub installiert per URL und prüft die Signatur gegen seinen Trust-Store.\n\nLokal entwickeln? Nehmen Sie das CLI — Studio installiert (noch) nicht aus einem unverpackten Verzeichnis:';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get addSourceCliExample => 'chain install --link /pfad/zum/modul';
|
String get addSourceCliExample => 'chain install --link /pfad/zum/modul';
|
||||||
|
|
@ -2958,24 +2958,24 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get chainBinaryNotFound =>
|
String get chainBinaryNotFound =>
|
||||||
'Das Programm `chain` wurde auf diesem Rechner nicht gefunden.';
|
'Das Programm chain wurde auf diesem Rechner nicht gefunden.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get chainBinaryNotFoundHint =>
|
String get chainBinaryNotFoundHint =>
|
||||||
'Installieren Sie die Ch∆In-Plattform oder verweisen Sie Studio auf eine vorhandene `chain`-Datei.';
|
'Installieren Sie die Ch∆In-Plattform oder verweisen Sie Studio auf eine vorhandene chain-Datei.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get chainBinaryLocateButton => '`chain`-Programm suchen …';
|
String get chainBinaryLocateButton => 'chain-Programm suchen …';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get chainBinaryInstallDocsButton => 'Installationsanleitung öffnen';
|
String get chainBinaryInstallDocsButton => 'Installationsanleitung öffnen';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get chainBinaryPickerTitle => '`chain`-Programm auswählen';
|
String get chainBinaryPickerTitle => 'chain-Programm auswählen';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String chainBinarySetOk(String path) {
|
String chainBinarySetOk(String path) {
|
||||||
return 'Verwende `chain` unter $path';
|
return 'Verwende chain unter $path';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|
@ -3019,7 +3019,7 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get providerDescOllama =>
|
String get providerDescOllama =>
|
||||||
'Lokales `ollama serve`. Die Modelle bleiben auf Ihrem Rechner. Kein API-Schlüssel nötig.';
|
'Lokales ollama serve. Die Modelle bleiben auf Ihrem Rechner. Kein API-Schlüssel nötig.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get providerDescOpenai =>
|
String get providerDescOpenai =>
|
||||||
|
|
|
||||||
|
|
@ -196,28 +196,28 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get errApprovalTimedOutHint =>
|
String get errApprovalTimedOutHint =>
|
||||||
'No reviewer decided within the configured time. Raise `timeout_seconds` on the approval step or alert the reviewer.';
|
'No reviewer decided within the configured time. Raise timeout_seconds on the approval step or alert the reviewer.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get errOutputTooLarge => 'Step output exceeded the size limit.';
|
String get errOutputTooLarge => 'Step output exceeded the size limit.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get errOutputTooLargeHint =>
|
String get errOutputTooLargeHint =>
|
||||||
'Either trim the output (truncate text, downsample bytes) or raise `max_output_size_mb` in the operator config.';
|
'Either trim the output (truncate text, downsample bytes) or raise max_output_size_mb in the operator config.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get errServiceUnavailableForStep => 'Host service not configured.';
|
String get errServiceUnavailableForStep => 'Host service not configured.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get errServiceUnavailableForStepHint =>
|
String get errServiceUnavailableForStepHint =>
|
||||||
'The module requires a service (e.g. ollama, playwright) the operator hasn\'t declared. Add it under `services:` in ~/.chain/config.yaml.';
|
'The module requires a service (e.g. ollama, playwright) the operator hasn\'t declared. Add it under services: in ~/.chain/config.yaml.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get errMissingValue => 'Required value is missing.';
|
String get errMissingValue => 'Required value is missing.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get errMissingValueHint =>
|
String get errMissingValueHint =>
|
||||||
'The step expected an input that wasn\'t wired up — either supply it at run time or fix the upstream `\$ref`.';
|
'The step expected an input that wasn\'t wired up — either supply it at run time or fix the upstream \$ref.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get errMcpUnreachable => 'MCP endpoint unreachable.';
|
String get errMcpUnreachable => 'MCP endpoint unreachable.';
|
||||||
|
|
@ -612,7 +612,7 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get addMcpIntro =>
|
String get addMcpIntro =>
|
||||||
'Tools the server advertises via `tools/list` appear in the Store as `mcp.<name>.<tool>` capabilities.';
|
'Tools the server advertises via tools/list appear in the Store as mcp.<name>.<tool> capabilities.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get addMcpSuggestionsLabel => 'Suggested servers — click to pre-fill';
|
String get addMcpSuggestionsLabel => 'Suggested servers — click to pre-fill';
|
||||||
|
|
@ -646,7 +646,7 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get addN8nIntro =>
|
String get addN8nIntro =>
|
||||||
'Active workflows surface in the Store as `n8n.<name>.<workflow_slug>` capabilities.';
|
'Active workflows surface in the Store as n8n.<name>.<workflow_slug> capabilities.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get addN8nNameLabel => 'Name (no dots)';
|
String get addN8nNameLabel => 'Name (no dots)';
|
||||||
|
|
@ -1345,7 +1345,7 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get modulesNoneHint =>
|
String get modulesNoneHint =>
|
||||||
'Run `chain install <capability-name>` or check ~/.chain/modules/.';
|
'Run chain install <capability-name> or check ~/.chain/modules/.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get modulesReloadTooltip => 'Reload';
|
String get modulesReloadTooltip => 'Reload';
|
||||||
|
|
@ -1372,7 +1372,7 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String modulesUninstallBody(String name, String version) {
|
String modulesUninstallBody(String name, String version) {
|
||||||
return 'Removes $name v$version from this hub. Flows that reference it will fail at the next run. A `module.uninstalled` audit event is recorded.';
|
return 'Removes $name v$version from this hub. Flows that reference it will fail at the next run. A module.uninstalled audit event is recorded.';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|
@ -1413,7 +1413,7 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get flowsNoneHint =>
|
String get flowsNoneHint =>
|
||||||
'Save a flow with `chain admin flows save <name> <flow.yaml>` and it shows up here.';
|
'Save a flow with chain admin flows save <name> <flow.yaml> and it shows up here.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String flowsRunDialogTitle(String name) {
|
String flowsRunDialogTitle(String name) {
|
||||||
|
|
@ -1685,7 +1685,7 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String uninstallVersionPickerBody(String module) {
|
String uninstallVersionPickerBody(String module) {
|
||||||
return 'Several versions of `$module` are installed side-by-side. Select the exact version to remove — the others stay in place.';
|
return 'Several versions of $module are installed side-by-side. Select the exact version to remove — the others stay in place.';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|
@ -1696,7 +1696,7 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get defaultScopeBlurb =>
|
String get defaultScopeBlurb =>
|
||||||
'Ordered list of publisher segments the hub consults when a flow names a capability without an explicit `<provider>/` prefix. First match wins — promote the segments your team uses most to the top. Catalog-known publishers appear as chips; arbitrary entries are accepted for private segments.';
|
'Ordered list of publisher segments the hub consults when a flow names a capability without an explicit <provider>/ prefix. First match wins — promote the segments your team uses most to the top. Catalog-known publishers appear as chips; arbitrary entries are accepted for private segments.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get defaultScopeAddLabel => 'Add publisher segment';
|
String get defaultScopeAddLabel => 'Add publisher segment';
|
||||||
|
|
@ -1788,7 +1788,7 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get welcomeChecklistNextModuleBody =>
|
String get welcomeChecklistNextModuleBody =>
|
||||||
'Generate a Rust+WASM scaffold with `chain new module <name>`. The module-sdk handles the WIT plumbing; you write a typed invoke.';
|
'Generate a Rust+WASM scaffold with chain new module <name>. The module-sdk handles the WIT plumbing; you write a typed invoke.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get welcomeChecklistNextModuleButton => 'Read the docs';
|
String get welcomeChecklistNextModuleButton => 'Read the docs';
|
||||||
|
|
@ -1904,7 +1904,7 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get errPermissionDeniedHint =>
|
String get errPermissionDeniedHint =>
|
||||||
'The hub\'s operator policy blocks this action. Check `~/.chain/config.yaml`.';
|
'The hub\'s operator policy blocks this action. Check ~/.chain/config.yaml.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get errFailedPrecondition => 'Setup issue blocked this.';
|
String get errFailedPrecondition => 'Setup issue blocked this.';
|
||||||
|
|
@ -1918,21 +1918,21 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get errInternalHint =>
|
String get errInternalHint =>
|
||||||
'Check the hub logs at `~/.chain/logs/`. If this repeats, please report it.';
|
'Check the hub logs at ~/.chain/logs/. If this repeats, please report it.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get errUnavailable => 'Hub not reachable.';
|
String get errUnavailable => 'Hub not reachable.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get errUnavailableHint =>
|
String get errUnavailableHint =>
|
||||||
'Make sure `chain serve` (or `chain daemon start`) is running and the daemon endpoint matches Studio\'s settings.';
|
'Make sure chain serve (or chain daemon start) is running and the daemon endpoint matches Studio\'s settings.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get errUnauthenticated => 'Authentication required.';
|
String get errUnauthenticated => 'Authentication required.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get errUnauthenticatedHint =>
|
String get errUnauthenticatedHint =>
|
||||||
'Set `CHAIN_REGISTRY_TOKEN` or sign in through Settings before retrying.';
|
'Set CHAIN_REGISTRY_TOKEN or sign in through Settings before retrying.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get errCopyDetail => 'Copy detail';
|
String get errCopyDetail => 'Copy detail';
|
||||||
|
|
@ -2253,7 +2253,7 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get doctorDaemonControlHint =>
|
String get doctorDaemonControlHint =>
|
||||||
'Studio shells out to the platform binary — mirrors `chain daemon …` exactly so the CLI and UI stay in lockstep.';
|
'Studio shells out to the platform binary — mirrors chain daemon … exactly so the CLI and UI stay in lockstep.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get doctorDaemonControlWorking => 'Working…';
|
String get doctorDaemonControlWorking => 'Working…';
|
||||||
|
|
@ -2278,7 +2278,7 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get doctorPathsEmpty =>
|
String get doctorPathsEmpty =>
|
||||||
'Daemon did not report file paths. Update the running hub via `chain daemon restart`.';
|
'Daemon did not report file paths. Update the running hub via chain daemon restart.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String doctorOpenError(String detail) {
|
String doctorOpenError(String detail) {
|
||||||
|
|
@ -2292,7 +2292,7 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String doctorUpdateBody(String channel, String version) {
|
String doctorUpdateBody(String channel, String version) {
|
||||||
return 'Channel $channel now offers $version. Apply via the button — Studio shells out to `chain update apply --channel $channel`.';
|
return 'Channel $channel now offers $version. Apply via the button — Studio shells out to chain update apply --channel $channel.';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|
@ -2329,7 +2329,7 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get mcpHint =>
|
String get mcpHint =>
|
||||||
'External MCP servers federate their tools as `mcp.<server>.<tool>` capabilities. Configure once, see them in the Store.';
|
'External MCP servers federate their tools as mcp.<server>.<tool> capabilities. Configure once, see them in the Store.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get mcpEmpty => 'No MCP servers configured. Click + to add one.';
|
String get mcpEmpty => 'No MCP servers configured. Click + to add one.';
|
||||||
|
|
@ -2339,7 +2339,7 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get n8nHint =>
|
String get n8nHint =>
|
||||||
'Active n8n workflows surface as `n8n.<endpoint>.<slug>` capabilities. Configure once, see them in the Store.';
|
'Active n8n workflows surface as n8n.<endpoint>.<slug> capabilities. Configure once, see them in the Store.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get n8nEmpty => 'No n8n endpoints configured. Click + to add one.';
|
String get n8nEmpty => 'No n8n endpoints configured. Click + to add one.';
|
||||||
|
|
@ -2348,7 +2348,7 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||||
String get hubUnreachable => 'Hub unreachable';
|
String get hubUnreachable => 'Hub unreachable';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get hubUnreachableHint => 'Start the hub with `chain serve`.';
|
String get hubUnreachableHint => 'Start the hub with chain serve.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get languageEnglish => 'English';
|
String get languageEnglish => 'English';
|
||||||
|
|
@ -2439,7 +2439,7 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String systemAiApiKeyDisclaimer(String name) {
|
String systemAiApiKeyDisclaimer(String name) {
|
||||||
return 'Studio never reads or stores the key value — only its env-var name. The hub reads `\$$name` at request time.';
|
return 'Studio never reads or stores the key value — only its env-var name. The hub reads \$$name at request time.';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|
@ -2895,7 +2895,7 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String addSourceIntro(String capability) {
|
String addSourceIntro(String capability) {
|
||||||
return '`$capability` is not in the public store. Point the hub at a `.chain` bundle URL or a local bundle path; the hub downloads, verifies (sha256 + signature) and installs it.';
|
return '$capability is not in the public store. Point the hub at a .chain bundle URL or a local bundle path; the hub downloads, verifies (sha256 + signature) and installs it.';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|
@ -2910,7 +2910,7 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get addSourceHowItWorksBody =>
|
String get addSourceHowItWorksBody =>
|
||||||
'A module is a directory with a module.yaml + the WASM artifact. To share it: pack it (`chain pack <dir>`) and host the resulting `.chain` bundle anywhere (your own Forgejo / GitHub / S3). The hub installs by URL and verifies the signature against its trust store.\n\nDeveloping locally? Use the CLI — Studio cannot install from an unpacked directory (yet):';
|
'A module is a directory with a module.yaml + the WASM artifact. To share it: pack it (chain pack <dir>) and host the resulting .chain bundle anywhere (your own Forgejo / GitHub / S3). The hub installs by URL and verifies the signature against its trust store.\n\nDeveloping locally? Use the CLI — Studio cannot install from an unpacked directory (yet):';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get addSourceCliExample => 'chain install --link /path/to/module';
|
String get addSourceCliExample => 'chain install --link /path/to/module';
|
||||||
|
|
@ -2958,24 +2958,24 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get chainBinaryNotFound =>
|
String get chainBinaryNotFound =>
|
||||||
'Could not find the `chain` program on this machine.';
|
'Could not find the chain program on this machine.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get chainBinaryNotFoundHint =>
|
String get chainBinaryNotFoundHint =>
|
||||||
'Install the Ch∆In platform, or point Studio at an existing `chain` binary.';
|
'Install the Ch∆In platform, or point Studio at an existing chain binary.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get chainBinaryLocateButton => 'Locate `chain` binary…';
|
String get chainBinaryLocateButton => 'Locate chain binary…';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get chainBinaryInstallDocsButton => 'Open install guide';
|
String get chainBinaryInstallDocsButton => 'Open install guide';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get chainBinaryPickerTitle => 'Select the `chain` binary';
|
String get chainBinaryPickerTitle => 'Select the chain binary';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String chainBinarySetOk(String path) {
|
String chainBinarySetOk(String path) {
|
||||||
return 'Using `chain` binary at $path';
|
return 'Using chain binary at $path';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|
@ -3019,7 +3019,7 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get providerDescOllama =>
|
String get providerDescOllama =>
|
||||||
'Local `ollama serve`. Models stay on your machine. No API key needed.';
|
'Local ollama serve. Models stay on your machine. No API key needed.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get providerDescOpenai =>
|
String get providerDescOpenai =>
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@ void main() {
|
||||||
r"\b(du|dich|dir|dein|deine|deiner|deinem|deinen|deins|"
|
r"\b(du|dich|dir|dein|deine|deiner|deinem|deinen|deins|"
|
||||||
r"brauchst|tippst|willst|kannst|hast|bist|machst|siehst|"
|
r"brauchst|tippst|willst|kannst|hast|bist|machst|siehst|"
|
||||||
r"klickst|wählst|öffnest|startest|versuchst|versuch's|"
|
r"klickst|wählst|öffnest|startest|versuchst|versuch's|"
|
||||||
r"übergib|wähle|klicke|tippe)\b",
|
r"übergib|wähle|klicke|tippe|nimm|zeig)\b",
|
||||||
caseSensitive: false,
|
caseSensitive: false,
|
||||||
);
|
);
|
||||||
final offenders = <String>[];
|
final offenders = <String>[];
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue