From 56a7a7851b09cb30a5cd543c8cb4f926109b4290 Mon Sep 17 00:00:00 2001 From: Fuwn Date: Sun, 24 May 2026 13:22:34 +0000 Subject: refactor(locale): move hardcoded UI strings into english locale Adds optional namespaces (common, errors, commandPalette, headTitle, notifications, schedule, events, home, reader, routes, badgePreview, badgeWall) and extends existing ones (settings.*, lists.*, tools.*, user.*, hololive.*) on the Locale interface. New fields are optional so japanese.ts can omit them; svelte-i18n's fallbackLocale handles the runtime miss. HeadTitle gains an optional routeKey prop for type-safe lookup. defaultActions becomes a factory so the command palette re-reads locale on language toggle. The existing JP feedback translation in routes/settings is preserved via japanese.ts. Out of scope (kept hardcoded): service-worker.ts, app.html, Landing*.svelte, tools.ts registry, Easter Event 2025 pages. --- src/lib/CommandPalette/CommandPalette.svelte | 16 +- src/lib/CommandPalette/actions.ts | 356 ++++++++++++++------------- src/lib/CommandPalette/authActions.ts | 8 +- src/lib/CommandPalette/syncActions.ts | 35 ++- src/lib/CommandPalette/toggleActions.ts | 56 +++-- 5 files changed, 256 insertions(+), 215 deletions(-) (limited to 'src/lib/CommandPalette') diff --git a/src/lib/CommandPalette/CommandPalette.svelte b/src/lib/CommandPalette/CommandPalette.svelte index b68d468d..04eabff9 100644 --- a/src/lib/CommandPalette/CommandPalette.svelte +++ b/src/lib/CommandPalette/CommandPalette.svelte @@ -3,6 +3,7 @@ import { onMount } from "svelte"; import { fly, fade } from "svelte/transition"; import { flip } from "svelte/animate"; import type { CommandPaletteAction } from "./actions"; +import locale from "$stores/locale"; export let items: CommandPaletteAction[] = []; export let open = false; @@ -176,7 +177,7 @@ const handleGlobalKey = (e: KeyboardEvent) => { class="dropdown {open ? 'fade-in' : 'fade-out'}" role="dialog" aria-modal="true" - aria-label="Command palette" + aria-label={$locale().commandPalette?.ariaLabel} >