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
|
|
@ -342,6 +342,134 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
return '$n Treffer';
|
||||
}
|
||||
|
||||
@override
|
||||
String get storeReloadTooltip => 'Aktualisieren';
|
||||
|
||||
@override
|
||||
String get storePillInstalled => 'installiert';
|
||||
|
||||
@override
|
||||
String get storePillUpdate => 'Update';
|
||||
|
||||
@override
|
||||
String storeUpdateButton(String version) {
|
||||
return 'Update auf $version';
|
||||
}
|
||||
|
||||
@override
|
||||
String storeUpdateTooltip(String installed, String best) {
|
||||
return 'Installiert $installed — Store bietet v$best';
|
||||
}
|
||||
|
||||
@override
|
||||
String get storeNoTagline => '(keine Beschreibung)';
|
||||
|
||||
@override
|
||||
String get storeUninstallTitle => 'Modul deinstallieren?';
|
||||
|
||||
@override
|
||||
String storeUninstallBody(String name) {
|
||||
return 'Entfernt $name aus diesem Hub. Flows, die es verwenden, schlagen beim nächsten Lauf fehl.';
|
||||
}
|
||||
|
||||
@override
|
||||
String storeInstalledToast(String name, String version) {
|
||||
return '$name v$version installiert.';
|
||||
}
|
||||
|
||||
@override
|
||||
String storeInstallFailedToast(String error) {
|
||||
return 'Installation fehlgeschlagen: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String storeUninstalledToast(String name, String version) {
|
||||
return '$name v$version deinstalliert.';
|
||||
}
|
||||
|
||||
@override
|
||||
String storeUninstallFailedToast(String error) {
|
||||
return 'Deinstallation fehlgeschlagen: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String storeOpenBrowserFailed(String error) {
|
||||
return 'Browser konnte nicht geöffnet werden: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get storeSectionTags => 'Tags';
|
||||
|
||||
@override
|
||||
String get storeSectionRequiredCapabilities => 'Erforderliche Capabilities';
|
||||
|
||||
@override
|
||||
String get storeSectionRequiredHostServices => 'Erforderliche Host-Dienste';
|
||||
|
||||
@override
|
||||
String get storeSectionScreenshots => 'Screenshots';
|
||||
|
||||
@override
|
||||
String get storeSectionDocumentation => 'Dokumentation';
|
||||
|
||||
@override
|
||||
String get storeSectionSource => 'Quelle';
|
||||
|
||||
@override
|
||||
String get storeInstallingButton => 'Installiere…';
|
||||
|
||||
@override
|
||||
String get storeNotInstallable => 'Nicht installierbar';
|
||||
|
||||
@override
|
||||
String storeNotInstallableTooltip(String status) {
|
||||
return 'Status „$status\" — Installations-Pfad noch nicht verdrahtet.';
|
||||
}
|
||||
|
||||
@override
|
||||
String storeInstallProgressTitle(String name) {
|
||||
return 'Installation von $name';
|
||||
}
|
||||
|
||||
@override
|
||||
String get storeInstallProgressBody => 'Holen, verifizieren, entpacken…';
|
||||
|
||||
@override
|
||||
String get storeLoadDocs => 'Dokumentation laden';
|
||||
|
||||
@override
|
||||
String get storeDocsHint =>
|
||||
'README inline gerendert; nutzt das Registry-Token des Hubs, falls nötig.';
|
||||
|
||||
@override
|
||||
String get storeDocsFetching => 'README wird geladen…';
|
||||
|
||||
@override
|
||||
String get storeOpenRepoButton => 'Repository im Browser öffnen';
|
||||
|
||||
@override
|
||||
String get storeDocsErrorNotFound =>
|
||||
'Dieses Modul ist nicht im Store-Index des Hubs enthalten.';
|
||||
|
||||
@override
|
||||
String get storeDocsErrorNoDocs =>
|
||||
'Für dieses Modul ist keine Repository-URL hinterlegt.';
|
||||
|
||||
@override
|
||||
String get storeDocsErrorAuth =>
|
||||
'Die Registry erfordert Authentifizierung, um dieses README zu laden. Setze FAI_REGISTRY_TOKEN in der Umgebung des Daemons und starte den Hub neu.';
|
||||
|
||||
@override
|
||||
String storeDocsErrorNetwork(String detail) {
|
||||
return 'Netzwerkfehler beim Laden des README. $detail';
|
||||
}
|
||||
|
||||
@override
|
||||
String get storeDocsErrorParse => 'README ist kein gültiges UTF-8.';
|
||||
|
||||
@override
|
||||
String get storeDocsErrorGeneric => 'README konnte nicht geladen werden.';
|
||||
|
||||
@override
|
||||
String get storeFederationNudgeTitle => 'Mehr Capabilities?';
|
||||
|
||||
|
|
@ -814,4 +942,67 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
|
||||
@override
|
||||
String get languageGerman => 'Deutsch';
|
||||
|
||||
@override
|
||||
String get searchHint =>
|
||||
'Springe überall hin — Module, Store, Flows, Seiten…';
|
||||
|
||||
@override
|
||||
String get searchIndexing => 'Indiziere…';
|
||||
|
||||
@override
|
||||
String get searchNoMatches => 'Keine Treffer.';
|
||||
|
||||
@override
|
||||
String get searchHintNavigate => '↑↓ navigieren';
|
||||
|
||||
@override
|
||||
String get searchHintOpen => 'Enter öffnen';
|
||||
|
||||
@override
|
||||
String get searchHintClose => 'Esc schließen';
|
||||
|
||||
@override
|
||||
String get searchGroupPages => 'Seiten';
|
||||
|
||||
@override
|
||||
String get searchGroupModules => 'Module';
|
||||
|
||||
@override
|
||||
String get searchGroupStore => 'Store';
|
||||
|
||||
@override
|
||||
String get searchGroupFlows => 'Flows';
|
||||
|
||||
@override
|
||||
String get searchSettingsLabel => 'Einstellungen';
|
||||
|
||||
@override
|
||||
String searchPageHint(int n) {
|
||||
return 'Seite · ⌘$n';
|
||||
}
|
||||
|
||||
@override
|
||||
String get searchSettingsHint => 'Hub-Endpunkt, Kanäle, System-AI · ⌘;';
|
||||
|
||||
@override
|
||||
String searchInstalledModuleHint(String version) {
|
||||
return 'installiertes Modul · v$version';
|
||||
}
|
||||
|
||||
@override
|
||||
String get searchStoreUncategorized => 'ohne Kategorie';
|
||||
|
||||
@override
|
||||
String searchStoreHintWithTagline(String tagline) {
|
||||
return 'Store · $tagline';
|
||||
}
|
||||
|
||||
@override
|
||||
String searchStoreHintWithCategory(String category) {
|
||||
return 'Store · $category';
|
||||
}
|
||||
|
||||
@override
|
||||
String get searchSavedFlowHint => 'gespeicherter Flow';
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue