fix(l10n): no literal backticks in UI text, two stray informal imperatives
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:
flemming-it 2026-07-18 00:25:31 +02:00
parent eab58c0b68
commit 6bbe670074
6 changed files with 156 additions and 156 deletions

View file

@ -196,28 +196,28 @@ class AppLocalizationsEn extends AppLocalizations {
@override
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
String get errOutputTooLarge => 'Step output exceeded the size limit.';
@override
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
String get errServiceUnavailableForStep => 'Host service not configured.';
@override
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
String get errMissingValue => 'Required value is missing.';
@override
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
String get errMcpUnreachable => 'MCP endpoint unreachable.';
@ -612,7 +612,7 @@ class AppLocalizationsEn extends AppLocalizations {
@override
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
String get addMcpSuggestionsLabel => 'Suggested servers — click to pre-fill';
@ -646,7 +646,7 @@ class AppLocalizationsEn extends AppLocalizations {
@override
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
String get addN8nNameLabel => 'Name (no dots)';
@ -1345,7 +1345,7 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get modulesNoneHint =>
'Run `chain install <capability-name>` or check ~/.chain/modules/.';
'Run chain install <capability-name> or check ~/.chain/modules/.';
@override
String get modulesReloadTooltip => 'Reload';
@ -1372,7 +1372,7 @@ class AppLocalizationsEn extends AppLocalizations {
@override
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
@ -1413,7 +1413,7 @@ class AppLocalizationsEn extends AppLocalizations {
@override
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
String flowsRunDialogTitle(String name) {
@ -1685,7 +1685,7 @@ class AppLocalizationsEn extends AppLocalizations {
@override
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
@ -1696,7 +1696,7 @@ class AppLocalizationsEn extends AppLocalizations {
@override
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
String get defaultScopeAddLabel => 'Add publisher segment';
@ -1788,7 +1788,7 @@ class AppLocalizationsEn extends AppLocalizations {
@override
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
String get welcomeChecklistNextModuleButton => 'Read the docs';
@ -1904,7 +1904,7 @@ class AppLocalizationsEn extends AppLocalizations {
@override
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
String get errFailedPrecondition => 'Setup issue blocked this.';
@ -1918,21 +1918,21 @@ class AppLocalizationsEn extends AppLocalizations {
@override
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
String get errUnavailable => 'Hub not reachable.';
@override
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
String get errUnauthenticated => 'Authentication required.';
@override
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
String get errCopyDetail => 'Copy detail';
@ -2253,7 +2253,7 @@ class AppLocalizationsEn extends AppLocalizations {
@override
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
String get doctorDaemonControlWorking => 'Working…';
@ -2278,7 +2278,7 @@ class AppLocalizationsEn extends AppLocalizations {
@override
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
String doctorOpenError(String detail) {
@ -2292,7 +2292,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 `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
@ -2329,7 +2329,7 @@ class AppLocalizationsEn extends AppLocalizations {
@override
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
String get mcpEmpty => 'No MCP servers configured. Click + to add one.';
@ -2339,7 +2339,7 @@ class AppLocalizationsEn extends AppLocalizations {
@override
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
String get n8nEmpty => 'No n8n endpoints configured. Click + to add one.';
@ -2348,7 +2348,7 @@ class AppLocalizationsEn extends AppLocalizations {
String get hubUnreachable => 'Hub unreachable';
@override
String get hubUnreachableHint => 'Start the hub with `chain serve`.';
String get hubUnreachableHint => 'Start the hub with chain serve.';
@override
String get languageEnglish => 'English';
@ -2439,7 +2439,7 @@ class AppLocalizationsEn extends AppLocalizations {
@override
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
@ -2895,7 +2895,7 @@ class AppLocalizationsEn extends AppLocalizations {
@override
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
@ -2910,7 +2910,7 @@ 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 (`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
String get addSourceCliExample => 'chain install --link /path/to/module';
@ -2958,24 +2958,24 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get chainBinaryNotFound =>
'Could not find the `chain` program on this machine.';
'Could not find the chain program on this machine.';
@override
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
String get chainBinaryLocateButton => 'Locate `chain` binary…';
String get chainBinaryLocateButton => 'Locate chain binary…';
@override
String get chainBinaryInstallDocsButton => 'Open install guide';
@override
String get chainBinaryPickerTitle => 'Select the `chain` binary';
String get chainBinaryPickerTitle => 'Select the chain binary';
@override
String chainBinarySetOk(String path) {
return 'Using `chain` binary at $path';
return 'Using chain binary at $path';
}
@override
@ -3019,7 +3019,7 @@ class AppLocalizationsEn extends AppLocalizations {
@override
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
String get providerDescOpenai =>