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/lib/Settings/Verbiage.svelte | 25 +++++++++++++------------
 1 file changed, 13 insertions(+), 12 deletions(-)

(limited to 'src/lib/Settings/Verbiage.svelte')

diff --git a/src/lib/Settings/Verbiage.svelte b/src/lib/Settings/Verbiage.svelte
index b82281ee..09caced2 100644
--- a/src/lib/Settings/Verbiage.svelte
+++ b/src/lib/Settings/Verbiage.svelte
@@ -1,5 +1,6 @@
 <script>
 import root from "$lib/Utility/root";
+import locale from "$stores/locale";
 </script>
 
 <details open={false}>
@@ -7,28 +8,28 @@ import root from "$lib/Utility/root";
 
   <ul>
     <li>
-      <a href={root('/')}>Home</a>, Upcoming Episodes: Anime which you have seen all episodes of
-      thus far, and have a scheduled next episode(s) release date
+      <a href={root('/')}>{$locale().navigation.home}</a>, {$locale().lists.upcoming.episodes.title}:
+      {$locale().settings.verbiage?.upcomingEpisodes}
     </li>
     <li>
-      <a href={root('/')}>Home</a>, Not Yet Released: Anime which have not yet aired their first
-      episode, and have a scheduled next episode(s) release date
+      <a href={root('/')}>{$locale().navigation.home}</a>, {$locale().lists.upcoming.notYetReleased
+        .title}: {$locale().settings.verbiage?.notYetReleased}
     </li>
     <li>
-      <a href={root('/')}>Home</a>, Anime: Anime which you have not seen all episodes of thus far,
-      and have a scheduled next episode release date
+      <a href={root('/')}>{$locale().navigation.home}</a>, {$locale().settings.media.anime}:
+      {$locale().settings.verbiage?.dueEpisodes}
     </li>
     <li>
-      <a href={root('/')}>Home</a>, Manga: Manga which you have not read all chapters of thus far,
-      and have an available next chapter(s)
+      <a href={root('/')}>{$locale().navigation.home}</a>, {$locale().settings.media.manga}:
+      {$locale().settings.verbiage?.dueManga}
     </li>
     <li>
-      <a href={root('/completed')}>Completed</a>, Anime: Anime which you have not seen all episodes
-      of thus far, and have concluded airing
+      <a href={root('/completed')}>{$locale().navigation.completed}</a>, {$locale().settings.media
+        .anime}: {$locale().settings.verbiage?.completedAnime}
     </li>
     <li>
-      <a href={root('/completed')}>Completed</a>, Manga: Manga which you have not read all chapters
-      of thus far, and have concluded publishing
+      <a href={root('/completed')}>{$locale().navigation.completed}</a>, {$locale().settings.media
+        .manga}: {$locale().settings.verbiage?.completedManga}
     </li>
   </ul>
 </details>
-- 
cgit v1.2.3

