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
|
|
@ -26,7 +26,7 @@ import 'widgets/widgets.dart';
|
|||
/// Studio's own build version. Bump on every UI commit so the
|
||||
/// running app self-identifies — visible in the sidebar header
|
||||
/// and quick-glance proof that you're seeing the current build.
|
||||
const String kStudioVersion = '0.25.0';
|
||||
const String kStudioVersion = '0.27.0';
|
||||
|
||||
Future<void> main() async {
|
||||
WidgetsFlutterBinding.ensureInitialized();
|
||||
|
|
@ -215,23 +215,25 @@ class _StudioShellState extends State<StudioShell> {
|
|||
}
|
||||
|
||||
void _openSearchPalette() {
|
||||
final l = AppLocalizations.of(context)!;
|
||||
final pagesGroup = l.searchGroupPages;
|
||||
final hits = <FaiSearchHit>[
|
||||
for (var i = 0; i < _pages.length; i++)
|
||||
FaiSearchHit(
|
||||
label: _pages[i].labelOf(context),
|
||||
hint: 'page · ⌘${i + 1}',
|
||||
hint: l.searchPageHint(i + 1),
|
||||
icon: _pages[i].icon,
|
||||
group: 'Pages',
|
||||
group: pagesGroup,
|
||||
onSelect: () {
|
||||
Navigator.of(context).pop();
|
||||
setState(() => _selectedIndex = i);
|
||||
},
|
||||
),
|
||||
FaiSearchHit(
|
||||
label: 'Settings',
|
||||
hint: 'hub endpoint, channels, system AI · ⌘;',
|
||||
label: l.searchSettingsLabel,
|
||||
hint: l.searchSettingsHint,
|
||||
icon: Icons.settings_outlined,
|
||||
group: 'Pages',
|
||||
group: pagesGroup,
|
||||
onSelect: () {
|
||||
Navigator.of(context).pop();
|
||||
FaiSettingsDialog.show(context);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue