feat(studio): Store + Cmd+K palette i18n (v0.27.0)
- Localize Store page: search hint, category and status filter
chips (All / Published / Alpha / Planned / Installed),
pluralized result count, hub-unreachable / no-matches empty
states, featured strip header, store-card pills (installed /
update / version), Install / Update / Details / Read docs /
Uninstall / Not installable buttons, install-progress dialog,
uninstall confirm dialog, install / uninstall toasts,
open-browser failure toast.
- Localize detail-sheet sections: Tags, Required capabilities,
Required host services, Screenshots, Documentation, Source.
- Localize docs panel: Load documentation button, fetching
spinner copy, Open repository in browser button, friendly
error mapping (not_found / no_docs / auth / network / parse).
- Localize Cmd+K palette: search hint, group labels (Pages /
Modules / Store / Flows), keyboard hint footer, indexing /
no-matches states, dynamic-hit copy ("installed module ·
v{version}", "saved flow", "uncategorized"). Static page
hits now flow through the localized "Pages" group; Settings
entry uses the localized label and hint.
Status pill values ("published", "alpha", "planned") stay as
data-derived English strings since they map directly to the
store-index `status:` enum.
Signed-off-by: flemming-it <stefan.a.flemming@googlemail.com>
This commit is contained in:
parent
d25b4c87ae
commit
e2b2639a86
9 changed files with 990 additions and 109 deletions
|
|
@ -117,6 +117,66 @@
|
|||
"@storeNResults": {
|
||||
"placeholders": { "n": { "type": "int" } }
|
||||
},
|
||||
"storeReloadTooltip": "Aktualisieren",
|
||||
"storePillInstalled": "installiert",
|
||||
"storePillUpdate": "Update",
|
||||
"storeUpdateButton": "Update auf {version}",
|
||||
"@storeUpdateButton": { "placeholders": { "version": { "type": "String" } } },
|
||||
"storeUpdateTooltip": "Installiert {installed} — Store bietet v{best}",
|
||||
"@storeUpdateTooltip": {
|
||||
"placeholders": {
|
||||
"installed": { "type": "String" },
|
||||
"best": { "type": "String" }
|
||||
}
|
||||
},
|
||||
"storeNoTagline": "(keine Beschreibung)",
|
||||
"storeUninstallTitle": "Modul deinstallieren?",
|
||||
"storeUninstallBody": "Entfernt {name} aus diesem Hub. Flows, die es verwenden, schlagen beim nächsten Lauf fehl.",
|
||||
"@storeUninstallBody": { "placeholders": { "name": { "type": "String" } } },
|
||||
"storeInstalledToast": "{name} v{version} installiert.",
|
||||
"@storeInstalledToast": {
|
||||
"placeholders": {
|
||||
"name": { "type": "String" },
|
||||
"version": { "type": "String" }
|
||||
}
|
||||
},
|
||||
"storeInstallFailedToast": "Installation fehlgeschlagen: {error}",
|
||||
"@storeInstallFailedToast": { "placeholders": { "error": { "type": "String" } } },
|
||||
"storeUninstalledToast": "{name} v{version} deinstalliert.",
|
||||
"@storeUninstalledToast": {
|
||||
"placeholders": {
|
||||
"name": { "type": "String" },
|
||||
"version": { "type": "String" }
|
||||
}
|
||||
},
|
||||
"storeUninstallFailedToast": "Deinstallation fehlgeschlagen: {error}",
|
||||
"@storeUninstallFailedToast": { "placeholders": { "error": { "type": "String" } } },
|
||||
"storeOpenBrowserFailed": "Browser konnte nicht geöffnet werden: {error}",
|
||||
"@storeOpenBrowserFailed": { "placeholders": { "error": { "type": "String" } } },
|
||||
"storeSectionTags": "Tags",
|
||||
"storeSectionRequiredCapabilities": "Erforderliche Capabilities",
|
||||
"storeSectionRequiredHostServices": "Erforderliche Host-Dienste",
|
||||
"storeSectionScreenshots": "Screenshots",
|
||||
"storeSectionDocumentation": "Dokumentation",
|
||||
"storeSectionSource": "Quelle",
|
||||
"storeInstallingButton": "Installiere…",
|
||||
"storeNotInstallable": "Nicht installierbar",
|
||||
"storeNotInstallableTooltip": "Status „{status}\" — Installations-Pfad noch nicht verdrahtet.",
|
||||
"@storeNotInstallableTooltip": { "placeholders": { "status": { "type": "String" } } },
|
||||
"storeInstallProgressTitle": "Installation von {name}",
|
||||
"@storeInstallProgressTitle": { "placeholders": { "name": { "type": "String" } } },
|
||||
"storeInstallProgressBody": "Holen, verifizieren, entpacken…",
|
||||
"storeLoadDocs": "Dokumentation laden",
|
||||
"storeDocsHint": "README inline gerendert; nutzt das Registry-Token des Hubs, falls nötig.",
|
||||
"storeDocsFetching": "README wird geladen…",
|
||||
"storeOpenRepoButton": "Repository im Browser öffnen",
|
||||
"storeDocsErrorNotFound": "Dieses Modul ist nicht im Store-Index des Hubs enthalten.",
|
||||
"storeDocsErrorNoDocs": "Für dieses Modul ist keine Repository-URL hinterlegt.",
|
||||
"storeDocsErrorAuth": "Die Registry erfordert Authentifizierung, um dieses README zu laden. Setze FAI_REGISTRY_TOKEN in der Umgebung des Daemons und starte den Hub neu.",
|
||||
"storeDocsErrorNetwork": "Netzwerkfehler beim Laden des README. {detail}",
|
||||
"@storeDocsErrorNetwork": { "placeholders": { "detail": { "type": "String" } } },
|
||||
"storeDocsErrorParse": "README ist kein gültiges UTF-8.",
|
||||
"storeDocsErrorGeneric": "README konnte nicht geladen werden.",
|
||||
"storeFederationNudgeTitle": "Mehr Capabilities?",
|
||||
"storeFederationNudgeBody": "MCP-Server oder n8n-Endpunkt unter Einstellungen → MCP-Clients / N8N-Endpunkte konfigurieren. Entdeckte Tools und Workflows tauchen hier als `mcp.<server>.<tool>`- und `n8n.<endpoint>.<workflow>`-Capabilities auf — jeder Anthropic-/Community-MCP-Server bringt mehrere auf einmal.",
|
||||
"storeFederationNudgeButton": "Einstellungen öffnen",
|
||||
|
|
@ -328,5 +388,28 @@
|
|||
"hubUnreachableHint": "Hub starten mit `fai serve`.",
|
||||
|
||||
"languageEnglish": "English",
|
||||
"languageGerman": "Deutsch"
|
||||
"languageGerman": "Deutsch",
|
||||
|
||||
"searchHint": "Springe überall hin — Module, Store, Flows, Seiten…",
|
||||
"searchIndexing": "Indiziere…",
|
||||
"searchNoMatches": "Keine Treffer.",
|
||||
"searchHintNavigate": "↑↓ navigieren",
|
||||
"searchHintOpen": "Enter öffnen",
|
||||
"searchHintClose": "Esc schließen",
|
||||
"searchGroupPages": "Seiten",
|
||||
"searchGroupModules": "Module",
|
||||
"searchGroupStore": "Store",
|
||||
"searchGroupFlows": "Flows",
|
||||
"searchSettingsLabel": "Einstellungen",
|
||||
"searchPageHint": "Seite · ⌘{n}",
|
||||
"@searchPageHint": { "placeholders": { "n": { "type": "int" } } },
|
||||
"searchSettingsHint": "Hub-Endpunkt, Kanäle, System-AI · ⌘;",
|
||||
"searchInstalledModuleHint": "installiertes Modul · v{version}",
|
||||
"@searchInstalledModuleHint": { "placeholders": { "version": { "type": "String" } } },
|
||||
"searchStoreUncategorized": "ohne Kategorie",
|
||||
"searchStoreHintWithTagline": "Store · {tagline}",
|
||||
"@searchStoreHintWithTagline": { "placeholders": { "tagline": { "type": "String" } } },
|
||||
"searchStoreHintWithCategory": "Store · {category}",
|
||||
"@searchStoreHintWithCategory": { "placeholders": { "category": { "type": "String" } } },
|
||||
"searchSavedFlowHint": "gespeicherter Flow"
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue