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/updates/+page.svelte | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

(limited to 'src/routes/updates/+page.svelte')

diff --git a/src/routes/updates/+page.svelte b/src/routes/updates/+page.svelte
index 7dc628ca..71a6d2e3 100644
--- a/src/routes/updates/+page.svelte
+++ b/src/routes/updates/+page.svelte
@@ -5,6 +5,7 @@ import Skeleton from "$lib/Loading/Skeleton.svelte";
 import { createHeightObserver } from "$lib/Utility/html";
 import root from "$lib/Utility/root";
 import { onDestroy, onMount } from "svelte";
+import locale from "$stores/locale";
 
 let feed:
 	| { items: { title: string; link: string; content: string }[] }
@@ -64,17 +65,17 @@ const chapterTitle = (title: string) =>
 	title.replace(/^(.*?) (Vol\.|Ch\.|\bOneshot\b)/, "$2");
 </script>
 
-<HeadTitle route="Updates" path="/updates" />
+<HeadTitle routeKey="updates" path="/updates" />
 
 <div class="list-container">
   <details open class="list">
     <summary>
-      Manga
+      {$locale().routes?.updatesManga}
       <small class="opaque">{mangaEndTime ? mangaEndTime / 1000 : '...'}s</small>
     </summary>
 
     {#if feed === null}
-      Failed to load feed
+      {$locale().routes?.updatesFailedToLoad}
     {:else if feed !== undefined}
       <ul>
         {#each feed.items as item}
@@ -103,12 +104,12 @@ const chapterTitle = (title: string) =>
 
   <details open class="list">
     <summary>
-      Novels
+      {$locale().routes?.updatesNovels}
       <small class="opaque">{novelEndTime ? novelEndTime / 1000 : '...'}s</small>
     </summary>
 
     {#if novelFeed === null}
-      Failed to load feed
+      {$locale().routes?.updatesFailedToLoad}
     {:else if novelFeed !== undefined}
       <ul>
         {#each novelFeed.data.items as item}
-- 
cgit v1.2.3

