From 56a7a7851b09cb30a5cd543c8cb4f926109b4290 Mon Sep 17 00:00:00 2001
From: Fuwn <contact@fuwn.net>
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/routes/+layout.svelte | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

(limited to 'src/routes/+layout.svelte')

diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte
index 71d74adb..b1f9fc87 100644
--- a/src/routes/+layout.svelte
+++ b/src/routes/+layout.svelte
@@ -325,7 +325,7 @@ $: {
 
 <CommandPalette
   items={[
-    ...defaultActions,
+    ...defaultActions(),
     ...toolsAsCommandPaletteActions(),
     ...authActions(data.user),
     ...syncActions($userIdentity.id, $settings.settingsSync),
@@ -356,7 +356,7 @@ $: {
       <button
         type="button"
         class="menu-toggle"
-        aria-label="Menu"
+        aria-label={$locale().navigation.menu}
         aria-expanded={isMenuOpen}
         aria-controls="primary-nav"
         onclick={() => (isMenuOpen = !isMenuOpen)}
@@ -434,7 +434,11 @@ $: {
           </a>
         {:else if data.user}
           <a href={root(`/user/${$userIdentity.name}`)} class="header-item">
-            <img class="avatar" src={$userIdentity.avatar} alt="Avatar" />
+            <img
+              class="avatar"
+              src={$userIdentity.avatar}
+              alt={$locale().navigation.avatar}
+            />
           </a>
         {/if}
       </div>
-- 
cgit v1.2.3

