refactor(brand): rename F∆I -> Ch∆In + hub binary fai -> chain
Some checks failed
Security / Security check (push) Failing after 2s

Studio follows the platform rename: product branding F∆I -> Ch∆In in UI
strings, command examples fai -> chain, and — critically — the spawned
hub binary path ~/.fai/bin/fai -> ~/.fai/bin/chain so Studio launches
the renamed binary. The fai_* Dart identifiers (FaiLog, widget files,
the generated SDK) stay = vendor/internal namespace. flutter analyze:
no issues.

Signed-off-by: flemming-it <stefan.a.flemming@googlemail.com>
This commit is contained in:
flemming-it 2026-06-15 16:22:22 +02:00
parent a0007b9178
commit 7ff4fda2a3
36 changed files with 141 additions and 141 deletions

View file

@ -1,8 +1,8 @@
{
"@@locale": "de",
"appTitle": "F∆I Studio",
"appTitle": "Ch∆In Studio",
"navWelcome": "Willkommen",
"welcomeHeroTitle": "F∆I Platform",
"welcomeHeroTitle": "Ch∆In Platform",
"welcomeHeroSubtitle": "Deterministische Workflow-Engine für KI-gestützte Dokumentenverarbeitung in regulierten Umgebungen.",
"welcomePillarHubTitle": "Hub",
"welcomePillarHubBody": "Ein Rust-Binary, das Module lädt und Flows ausführt. SQLite für den State. Kein Docker, kein Message-Broker, keine Hintergrunddienste, die gepflegt werden müssen.",
@ -60,7 +60,7 @@
"welcomeChecklistMcp": "Öffentliche Capability-Quelle hinzufügen",
"welcomeChecklistMcpHint": "Im Store eine MCP-Quelle hinzufügen oder unter Einstellungen → MCP-Clients konfigurieren.",
"welcomeChecklistModule": "Ein Text-Modul installieren",
"welcomeChecklistModuleHint": "Im Store ein Modul aus der Kategorie deiner Wahl installieren. Module sind sandboxed F∆I-Komponenten.",
"welcomeChecklistModuleHint": "Im Store ein Modul aus der Kategorie deiner Wahl installieren. Module sind sandboxed Ch∆In-Komponenten.",
"welcomeChecklistFlow": "Einen gespeicherten Flow starten",
"welcomeChecklistFlowHint": "Flows → einen wählen → Starten. Studio bringt einige Demo-Flows mit; auch ein eigener tut's.",
"welcomeChecklistAllDone": "Alle vier Schritte erledigt.",
@ -320,7 +320,7 @@
},
"storeReloadTooltip": "Aktualisieren",
"storeTodayBadge": "HEUTE",
"storeTodayDeck": "Von der F∆I-Redaktion",
"storeTodayDeck": "Von der Ch∆In-Redaktion",
"storeTodayDismissTooltip": "Für diese Sitzung ausblenden",
"storePillInstalled": "installiert",
"storePillUpdate": "Update",
@ -607,7 +607,7 @@
"auditClearLogButton": "Log löschen",
"modulesTitle": "Module",
"modulesNoneTitle": "Noch keine Module",
"modulesNoneHint": "`fai install <capability-name>` ausführen oder ~/.fai/modules/ prüfen.",
"modulesNoneHint": "`chain install <capability-name>` ausführen oder ~/.fai/modules/ prüfen.",
"modulesReloadTooltip": "Aktualisieren",
"modulesRecentActivity": "LETZTE AKTIVITÄT",
"modulesRecentActivityHint": "letzte {n} install/uninstall-Ereignisse aus dem Audit-Log",
@ -667,7 +667,7 @@
"flowsTitle": "Flows",
"flowsReloadTooltip": "Aktualisieren",
"flowsNoneTitle": "Keine gespeicherten Flows",
"flowsNoneHint": "Flow speichern mit `fai 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": {
"placeholders": {
@ -849,7 +849,7 @@
"welcomeChecklistNextTodayBody": "tools/today/propose.sh per Cron laufen lassen und die Editorial-Karte im Store füllt sich mit operator-kuratierten Stories.",
"welcomeChecklistNextTodayButton": "Today-Doku öffnen",
"welcomeChecklistNextModuleTitle": "Eigenes Modul bauen",
"welcomeChecklistNextModuleBody": "Mit `fai new module <name>` ein Rust+WASM-Scaffold erzeugen. Das module-sdk übernimmt die WIT-Plumbing; du schreibst nur ein typisiertes invoke.",
"welcomeChecklistNextModuleBody": "Mit `chain new module <name>` ein Rust+WASM-Scaffold erzeugen. Das module-sdk übernimmt die WIT-Plumbing; du schreibst nur ein typisiertes invoke.",
"welcomeChecklistNextModuleButton": "Doku lesen",
"auditGroupToday": "HEUTE",
"auditGroupYesterday": "GESTERN",
@ -954,7 +954,7 @@
"errInternal": "Unerwarteter interner Fehler.",
"errInternalHint": "Hub-Logs unter `~/.fai/logs/` prüfen. Wenn das öfter passiert, bitte melden.",
"errUnavailable": "Hub nicht erreichbar.",
"errUnavailableHint": "Sicherstellen, dass `fai serve` (oder `fai 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.",
"errUnauthenticatedHint": "`FAI_REGISTRY_TOKEN` setzen oder in den Einstellungen anmelden, dann erneut versuchen.",
"errCopyDetail": "Detail kopieren",
@ -1173,7 +1173,7 @@
"doctorStatusUnknown": "Daemon-Status: …",
"doctorPillRunning": "läuft",
"doctorPillStopped": "gestoppt",
"doctorDaemonControlHint": "Studio ruft das Platform-Binary auf — entspricht `fai daemon …`, sodass CLI und UI im Gleichschritt bleiben.",
"doctorDaemonControlHint": "Studio ruft das Platform-Binary auf — entspricht `chain daemon …`, sodass CLI und UI im Gleichschritt bleiben.",
"doctorDaemonControlWorking": "Wird ausgeführt…",
"doctorPathLog": "Log",
"doctorPathConfig": "Konfig",
@ -1181,7 +1181,7 @@
"doctorPathModules": "Module-Verzeichnis",
"doctorPathFlows": "Flow-Verzeichnis",
"doctorPathPid": "PID-Datei",
"doctorPathsEmpty": "Daemon hat keine Datei-Pfade gemeldet. Hub aktualisieren via `fai daemon restart`.",
"doctorPathsEmpty": "Daemon hat keine Datei-Pfade gemeldet. Hub aktualisieren via `chain daemon restart`.",
"doctorOpenError": "Konnte nicht öffnen: {detail}",
"@doctorOpenError": {
"placeholders": {
@ -1198,7 +1198,7 @@
}
}
},
"doctorUpdateBody": "Kanal {channel} bietet jetzt {version}. Per Button anwenden — Studio ruft `fai update apply --channel {channel}` auf.",
"doctorUpdateBody": "Kanal {channel} bietet jetzt {version}. Per Button anwenden — Studio ruft `chain update apply --channel {channel}` auf.",
"@doctorUpdateBody": {
"placeholders": {
"channel": {
@ -1238,7 +1238,7 @@
"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.",
"hubUnreachable": "Hub nicht erreichbar",
"hubUnreachableHint": "Hub starten mit `fai serve`.",
"hubUnreachableHint": "Hub starten mit `chain serve`.",
"languageEnglish": "English",
"languageGerman": "Deutsch",
"searchHint": "Springe überall hin — Module, Store, Flows, Seiten…",
@ -1511,8 +1511,8 @@
"addSourceField": "URL oder Pfad zum .fai-Bundle",
"addSourceHint": "https://git.flemming.ai/deine-org/dein-modul/releases/download/v0.1.0/foo-0.1.0.fai",
"addSourceHowItWorksTitle": "Wie private Module funktionieren",
"addSourceHowItWorksBody": "Ein Modul ist ein Verzeichnis mit module.yaml + WASM-Artefakt. Zum Teilen: `fai pack <verzeichnis>` baut ein `.fai`-Bundle, das du beliebig hosten kannst (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:",
"addSourceCliExample": "fai install --link /pfad/zum/modul",
"addSourceHowItWorksBody": "Ein Modul ist ein Verzeichnis mit module.yaml + WASM-Artefakt. Zum Teilen: `chain pack <verzeichnis>` baut ein `.fai`-Bundle, das du beliebig hosten kannst (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:",
"addSourceCliExample": "chain install --link /pfad/zum/modul",
"addSourceInstallButton": "Installieren",
"addSourceCancel": "Abbrechen",
"installFailed": "Installation fehlgeschlagen: {error}",
@ -1540,7 +1540,7 @@
}
},
"faiBinaryNotFound": "Das Programm `fai` wurde auf diesem Rechner nicht gefunden.",
"faiBinaryNotFoundHint": "Installiere die F∆I-Plattform oder verweise Studio auf eine vorhandene `fai`-Datei.",
"faiBinaryNotFoundHint": "Installiere die Ch∆In-Plattform oder verweise Studio auf eine vorhandene `fai`-Datei.",
"faiBinaryLocateButton": "`fai`-Programm suchen …",
"faiBinaryInstallDocsButton": "Installationsanleitung öffnen",
"faiBinaryPickerTitle": "`fai`-Programm auswählen",

View file

@ -1,11 +1,11 @@
{
"@@locale": "en",
"appTitle": "F∆I Studio",
"appTitle": "Ch∆In Studio",
"@appTitle": {
"description": "App-bar title in the OS task switcher."
},
"navWelcome": "Welcome",
"welcomeHeroTitle": "F∆I Platform",
"welcomeHeroTitle": "Ch∆In Platform",
"welcomeHeroSubtitle": "Deterministic workflow engine for AI-assisted document processing in regulated environments.",
"welcomePillarHubTitle": "Hub",
"welcomePillarHubBody": "One Rust binary that loads modules and runs flows. SQLite for state. No Docker, no message broker, no background services to babysit.",
@ -63,7 +63,7 @@
"welcomeChecklistMcp": "Add a public capability source",
"welcomeChecklistMcpHint": "Add an MCP source from the Store, or configure one under Settings → MCP Clients.",
"welcomeChecklistModule": "Install a text module",
"welcomeChecklistModuleHint": "Install a module from the Store — pick whichever category fits your work. Modules are sandboxed F∆I components.",
"welcomeChecklistModuleHint": "Install a module from the Store — pick whichever category fits your work. Modules are sandboxed Ch∆In components.",
"welcomeChecklistFlow": "Run a saved flow",
"welcomeChecklistFlowHint": "Flows → pick one → Run. Studio ships a few demo flows; one of your own works too.",
"welcomeChecklistAllDone": "All four steps complete.",
@ -323,7 +323,7 @@
},
"storeReloadTooltip": "Reload",
"storeTodayBadge": "TODAY",
"storeTodayDeck": "From the F∆I editor",
"storeTodayDeck": "From the Ch∆In editor",
"storeTodayDismissTooltip": "Hide for this session",
"storePillInstalled": "installed",
"storePillUpdate": "update",
@ -610,7 +610,7 @@
"auditClearLogButton": "Clear log",
"modulesTitle": "Modules",
"modulesNoneTitle": "No modules yet",
"modulesNoneHint": "Run `fai install <capability-name>` or check ~/.fai/modules/.",
"modulesNoneHint": "Run `chain install <capability-name>` or check ~/.fai/modules/.",
"modulesReloadTooltip": "Reload",
"modulesRecentActivity": "RECENT ACTIVITY",
"modulesRecentActivityHint": "last {n} install/uninstall events from the audit log",
@ -670,7 +670,7 @@
"flowsTitle": "Flows",
"flowsReloadTooltip": "Reload",
"flowsNoneTitle": "No saved flows",
"flowsNoneHint": "Save a flow with `fai 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": {
"placeholders": {
@ -852,7 +852,7 @@
"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",
"welcomeChecklistNextModuleTitle": "Build your own module",
"welcomeChecklistNextModuleBody": "Generate a Rust+WASM scaffold with `fai 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",
"auditGroupToday": "TODAY",
"auditGroupYesterday": "YESTERDAY",
@ -957,7 +957,7 @@
"errInternal": "Unexpected internal error.",
"errInternalHint": "Check the hub logs at `~/.fai/logs/`. If this repeats, please report it.",
"errUnavailable": "Hub not reachable.",
"errUnavailableHint": "Make sure `fai serve` (or `fai 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.",
"errUnauthenticatedHint": "Set `FAI_REGISTRY_TOKEN` or sign in through Settings before retrying.",
"errCopyDetail": "Copy detail",
@ -1176,7 +1176,7 @@
"doctorStatusUnknown": "Daemon status: …",
"doctorPillRunning": "running",
"doctorPillStopped": "stopped",
"doctorDaemonControlHint": "Studio shells out to the platform binary — mirrors `fai 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…",
"doctorPathLog": "Log",
"doctorPathConfig": "Config",
@ -1184,7 +1184,7 @@
"doctorPathModules": "Modules dir",
"doctorPathFlows": "Flows dir",
"doctorPathPid": "PID file",
"doctorPathsEmpty": "Daemon did not report file paths. Update the running hub via `fai daemon restart`.",
"doctorPathsEmpty": "Daemon did not report file paths. Update the running hub via `chain daemon restart`.",
"doctorOpenError": "Could not open: {detail}",
"@doctorOpenError": {
"placeholders": {
@ -1201,7 +1201,7 @@
}
}
},
"doctorUpdateBody": "Channel {channel} now offers {version}. Apply via the button — Studio shells out to `fai update apply --channel {channel}`.",
"doctorUpdateBody": "Channel {channel} now offers {version}. Apply via the button — Studio shells out to `chain update apply --channel {channel}`.",
"@doctorUpdateBody": {
"placeholders": {
"channel": {
@ -1241,7 +1241,7 @@
"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.",
"hubUnreachable": "Hub unreachable",
"hubUnreachableHint": "Start the hub with `fai serve`.",
"hubUnreachableHint": "Start the hub with `chain serve`.",
"languageEnglish": "English",
"languageGerman": "Deutsch",
"searchHint": "Jump anywhere — modules, store, flows, pages…",
@ -1514,8 +1514,8 @@
"addSourceField": "URL or path to .fai bundle",
"addSourceHint": "https://git.flemming.ai/your-org/your-module/releases/download/v0.1.0/foo-0.1.0.fai",
"addSourceHowItWorksTitle": "How private modules work",
"addSourceHowItWorksBody": "A module is a directory with a module.yaml + the WASM artifact. To share it: pack it (`fai pack <dir>`) and host the resulting `.fai` 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": "fai install --link /path/to/module",
"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 `.fai` 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",
"addSourceInstallButton": "Install",
"addSourceCancel": "Cancel",
"installFailed": "Install failed: {error}",
@ -1543,7 +1543,7 @@
}
},
"faiBinaryNotFound": "Could not find the `fai` program on this machine.",
"faiBinaryNotFoundHint": "Install the F∆I platform, or point Studio at an existing `fai` binary.",
"faiBinaryNotFoundHint": "Install the Ch∆In platform, or point Studio at an existing `fai` binary.",
"faiBinaryLocateButton": "Locate `fai` binary…",
"faiBinaryInstallDocsButton": "Open install guide",
"faiBinaryPickerTitle": "Select the `fai` binary",

View file

@ -101,7 +101,7 @@ abstract class AppLocalizations {
/// App-bar title in the OS task switcher.
///
/// In en, this message translates to:
/// **'F∆I Studio'**
/// **'Ch∆In Studio'**
String get appTitle;
/// No description provided for @navWelcome.
@ -113,7 +113,7 @@ abstract class AppLocalizations {
/// No description provided for @welcomeHeroTitle.
///
/// In en, this message translates to:
/// **'F∆I Platform'**
/// **'Ch∆In Platform'**
String get welcomeHeroTitle;
/// No description provided for @welcomeHeroSubtitle.
@ -419,7 +419,7 @@ abstract class AppLocalizations {
/// No description provided for @welcomeChecklistModuleHint.
///
/// In en, this message translates to:
/// **'Install a module from the Store — pick whichever category fits your work. Modules are sandboxed F∆I components.'**
/// **'Install a module from the Store — pick whichever category fits your work. Modules are sandboxed Ch∆In components.'**
String get welcomeChecklistModuleHint;
/// No description provided for @welcomeChecklistFlow.
@ -1445,7 +1445,7 @@ abstract class AppLocalizations {
/// No description provided for @storeTodayDeck.
///
/// In en, this message translates to:
/// **'From the F∆I editor'**
/// **'From the Ch∆In editor'**
String get storeTodayDeck;
/// No description provided for @storeTodayDismissTooltip.
@ -1991,7 +1991,7 @@ abstract class AppLocalizations {
/// No description provided for @modulesNoneHint.
///
/// In en, this message translates to:
/// **'Run `fai install <capability-name>` or check ~/.fai/modules/.'**
/// **'Run `chain install <capability-name>` or check ~/.fai/modules/.'**
String get modulesNoneHint;
/// No description provided for @modulesReloadTooltip.
@ -2105,7 +2105,7 @@ abstract class AppLocalizations {
/// No description provided for @flowsNoneHint.
///
/// In en, this message translates to:
/// **'Save a flow with `fai 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;
/// No description provided for @flowsRunDialogTitle.
@ -2615,7 +2615,7 @@ abstract class AppLocalizations {
/// No description provided for @welcomeChecklistNextModuleBody.
///
/// In en, this message translates to:
/// **'Generate a Rust+WASM scaffold with `fai 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;
/// No description provided for @welcomeChecklistNextModuleButton.
@ -2831,7 +2831,7 @@ abstract class AppLocalizations {
/// No description provided for @errUnavailableHint.
///
/// In en, this message translates to:
/// **'Make sure `fai serve` (or `fai 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;
/// No description provided for @errUnauthenticated.
@ -3305,7 +3305,7 @@ abstract class AppLocalizations {
/// No description provided for @doctorDaemonControlHint.
///
/// In en, this message translates to:
/// **'Studio shells out to the platform binary — mirrors `fai 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;
/// No description provided for @doctorDaemonControlWorking.
@ -3353,7 +3353,7 @@ abstract class AppLocalizations {
/// No description provided for @doctorPathsEmpty.
///
/// In en, this message translates to:
/// **'Daemon did not report file paths. Update the running hub via `fai daemon restart`.'**
/// **'Daemon did not report file paths. Update the running hub via `chain daemon restart`.'**
String get doctorPathsEmpty;
/// No description provided for @doctorOpenError.
@ -3371,7 +3371,7 @@ abstract class AppLocalizations {
/// No description provided for @doctorUpdateBody.
///
/// In en, this message translates to:
/// **'Channel {channel} now offers {version}. Apply via the button — Studio shells out to `fai 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);
/// No description provided for @doctorUpdateUnreachable.
@ -3467,7 +3467,7 @@ abstract class AppLocalizations {
/// No description provided for @hubUnreachableHint.
///
/// In en, this message translates to:
/// **'Start the hub with `fai serve`.'**
/// **'Start the hub with `chain serve`.'**
String get hubUnreachableHint;
/// No description provided for @languageEnglish.
@ -4253,13 +4253,13 @@ abstract class AppLocalizations {
/// No description provided for @addSourceHowItWorksBody.
///
/// In en, this message translates to:
/// **'A module is a directory with a module.yaml + the WASM artifact. To share it: pack it (`fai pack <dir>`) and host the resulting `.fai` 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 `.fai` 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;
/// No description provided for @addSourceCliExample.
///
/// In en, this message translates to:
/// **'fai install --link /path/to/module'**
/// **'chain install --link /path/to/module'**
String get addSourceCliExample;
/// No description provided for @addSourceInstallButton.
@ -4337,7 +4337,7 @@ abstract class AppLocalizations {
/// No description provided for @faiBinaryNotFoundHint.
///
/// In en, this message translates to:
/// **'Install the F∆I platform, or point Studio at an existing `fai` binary.'**
/// **'Install the Ch∆In platform, or point Studio at an existing `fai` binary.'**
String get faiBinaryNotFoundHint;
/// No description provided for @faiBinaryLocateButton.

View file

@ -9,13 +9,13 @@ class AppLocalizationsDe extends AppLocalizations {
AppLocalizationsDe([String locale = 'de']) : super(locale);
@override
String get appTitle => 'F∆I Studio';
String get appTitle => 'Ch∆In Studio';
@override
String get navWelcome => 'Willkommen';
@override
String get welcomeHeroTitle => 'F∆I Platform';
String get welcomeHeroTitle => 'Ch∆In Platform';
@override
String get welcomeHeroSubtitle =>
@ -196,7 +196,7 @@ class AppLocalizationsDe extends AppLocalizations {
@override
String get welcomeChecklistModuleHint =>
'Im Store ein Modul aus der Kategorie deiner Wahl installieren. Module sind sandboxed F∆I-Komponenten.';
'Im Store ein Modul aus der Kategorie deiner Wahl installieren. Module sind sandboxed Ch∆In-Komponenten.';
@override
String get welcomeChecklistFlow => 'Einen gespeicherten Flow starten';
@ -775,7 +775,7 @@ class AppLocalizationsDe extends AppLocalizations {
String get storeTodayBadge => 'HEUTE';
@override
String get storeTodayDeck => 'Von der F∆I-Redaktion';
String get storeTodayDeck => 'Von der Ch∆In-Redaktion';
@override
String get storeTodayDismissTooltip => 'Für diese Sitzung ausblenden';
@ -1125,7 +1125,7 @@ class AppLocalizationsDe extends AppLocalizations {
@override
String get modulesNoneHint =>
'`fai install <capability-name>` ausführen oder ~/.fai/modules/ prüfen.';
'`chain install <capability-name>` ausführen oder ~/.fai/modules/ prüfen.';
@override
String get modulesReloadTooltip => 'Aktualisieren';
@ -1193,7 +1193,7 @@ class AppLocalizationsDe extends AppLocalizations {
@override
String get flowsNoneHint =>
'Flow speichern mit `fai 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
String flowsRunDialogTitle(String name) {
@ -1497,7 +1497,7 @@ class AppLocalizationsDe extends AppLocalizations {
@override
String get welcomeChecklistNextModuleBody =>
'Mit `fai new module <name>` ein Rust+WASM-Scaffold erzeugen. Das module-sdk übernimmt die WIT-Plumbing; du schreibst nur ein typisiertes invoke.';
'Mit `chain new module <name>` ein Rust+WASM-Scaffold erzeugen. Das module-sdk übernimmt die WIT-Plumbing; du schreibst nur ein typisiertes invoke.';
@override
String get welcomeChecklistNextModuleButton => 'Doku lesen';
@ -1635,7 +1635,7 @@ class AppLocalizationsDe extends AppLocalizations {
@override
String get errUnavailableHint =>
'Sicherstellen, dass `fai serve` (oder `fai 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
String get errUnauthenticated => 'Authentifizierung erforderlich.';
@ -1918,7 +1918,7 @@ class AppLocalizationsDe extends AppLocalizations {
@override
String get doctorDaemonControlHint =>
'Studio ruft das Platform-Binary auf — entspricht `fai 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
String get doctorDaemonControlWorking => 'Wird ausgeführt…';
@ -1943,7 +1943,7 @@ class AppLocalizationsDe extends AppLocalizations {
@override
String get doctorPathsEmpty =>
'Daemon hat keine Datei-Pfade gemeldet. Hub aktualisieren via `fai daemon restart`.';
'Daemon hat keine Datei-Pfade gemeldet. Hub aktualisieren via `chain daemon restart`.';
@override
String doctorOpenError(String detail) {
@ -1957,7 +1957,7 @@ class AppLocalizationsDe extends AppLocalizations {
@override
String doctorUpdateBody(String channel, String version) {
return 'Kanal $channel bietet jetzt $version. Per Button anwenden — Studio ruft `fai update apply --channel $channel` auf.';
return 'Kanal $channel bietet jetzt $version. Per Button anwenden — Studio ruft `chain update apply --channel $channel` auf.';
}
@override
@ -2015,7 +2015,7 @@ class AppLocalizationsDe extends AppLocalizations {
String get hubUnreachable => 'Hub nicht erreichbar';
@override
String get hubUnreachableHint => 'Hub starten mit `fai serve`.';
String get hubUnreachableHint => 'Hub starten mit `chain serve`.';
@override
String get languageEnglish => 'English';
@ -2487,10 +2487,10 @@ class AppLocalizationsDe extends AppLocalizations {
@override
String get addSourceHowItWorksBody =>
'Ein Modul ist ein Verzeichnis mit module.yaml + WASM-Artefakt. Zum Teilen: `fai pack <verzeichnis>` baut ein `.fai`-Bundle, das du beliebig hosten kannst (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 `.fai`-Bundle, das du beliebig hosten kannst (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:';
@override
String get addSourceCliExample => 'fai install --link /pfad/zum/modul';
String get addSourceCliExample => 'chain install --link /pfad/zum/modul';
@override
String get addSourceInstallButton => 'Installieren';
@ -2540,7 +2540,7 @@ class AppLocalizationsDe extends AppLocalizations {
@override
String get faiBinaryNotFoundHint =>
'Installiere die F∆I-Plattform oder verweise Studio auf eine vorhandene `fai`-Datei.';
'Installiere die Ch∆In-Plattform oder verweise Studio auf eine vorhandene `fai`-Datei.';
@override
String get faiBinaryLocateButton => '`fai`-Programm suchen …';

View file

@ -9,13 +9,13 @@ class AppLocalizationsEn extends AppLocalizations {
AppLocalizationsEn([String locale = 'en']) : super(locale);
@override
String get appTitle => 'F∆I Studio';
String get appTitle => 'Ch∆In Studio';
@override
String get navWelcome => 'Welcome';
@override
String get welcomeHeroTitle => 'F∆I Platform';
String get welcomeHeroTitle => 'Ch∆In Platform';
@override
String get welcomeHeroSubtitle =>
@ -195,7 +195,7 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get welcomeChecklistModuleHint =>
'Install a module from the Store — pick whichever category fits your work. Modules are sandboxed F∆I components.';
'Install a module from the Store — pick whichever category fits your work. Modules are sandboxed Ch∆In components.';
@override
String get welcomeChecklistFlow => 'Run a saved flow';
@ -793,7 +793,7 @@ class AppLocalizationsEn extends AppLocalizations {
String get storeTodayBadge => 'TODAY';
@override
String get storeTodayDeck => 'From the F∆I editor';
String get storeTodayDeck => 'From the Ch∆In editor';
@override
String get storeTodayDismissTooltip => 'Hide for this session';
@ -1140,7 +1140,7 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get modulesNoneHint =>
'Run `fai install <capability-name>` or check ~/.fai/modules/.';
'Run `chain install <capability-name>` or check ~/.fai/modules/.';
@override
String get modulesReloadTooltip => 'Reload';
@ -1208,7 +1208,7 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get flowsNoneHint =>
'Save a flow with `fai 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
String flowsRunDialogTitle(String name) {
@ -1508,7 +1508,7 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get welcomeChecklistNextModuleBody =>
'Generate a Rust+WASM scaffold with `fai 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
String get welcomeChecklistNextModuleButton => 'Read the docs';
@ -1645,7 +1645,7 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get errUnavailableHint =>
'Make sure `fai serve` (or `fai 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
String get errUnauthenticated => 'Authentication required.';
@ -1927,7 +1927,7 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get doctorDaemonControlHint =>
'Studio shells out to the platform binary — mirrors `fai 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
String get doctorDaemonControlWorking => 'Working…';
@ -1952,7 +1952,7 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get doctorPathsEmpty =>
'Daemon did not report file paths. Update the running hub via `fai daemon restart`.';
'Daemon did not report file paths. Update the running hub via `chain daemon restart`.';
@override
String doctorOpenError(String detail) {
@ -1966,7 +1966,7 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String doctorUpdateBody(String channel, String version) {
return 'Channel $channel now offers $version. Apply via the button — Studio shells out to `fai update apply --channel $channel`.';
return 'Channel $channel now offers $version. Apply via the button — Studio shells out to `chain update apply --channel $channel`.';
}
@override
@ -2022,7 +2022,7 @@ class AppLocalizationsEn extends AppLocalizations {
String get hubUnreachable => 'Hub unreachable';
@override
String get hubUnreachableHint => 'Start the hub with `fai serve`.';
String get hubUnreachableHint => 'Start the hub with `chain serve`.';
@override
String get languageEnglish => 'English';
@ -2491,10 +2491,10 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get addSourceHowItWorksBody =>
'A module is a directory with a module.yaml + the WASM artifact. To share it: pack it (`fai pack <dir>`) and host the resulting `.fai` 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 `.fai` 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
String get addSourceCliExample => 'fai install --link /path/to/module';
String get addSourceCliExample => 'chain install --link /path/to/module';
@override
String get addSourceInstallButton => 'Install';
@ -2543,7 +2543,7 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get faiBinaryNotFoundHint =>
'Install the F∆I platform, or point Studio at an existing `fai` binary.';
'Install the Ch∆In platform, or point Studio at an existing `fai` binary.';
@override
String get faiBinaryLocateButton => 'Locate `fai` binary…';