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/schedule/+page.svelte | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

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

diff --git a/src/routes/schedule/+page.svelte b/src/routes/schedule/+page.svelte
index 139f333e..9dcda20a 100644
--- a/src/routes/schedule/+page.svelte
+++ b/src/routes/schedule/+page.svelte
@@ -13,6 +13,7 @@ import Days from "$lib/Schedule/Days.svelte";
 import Skeleton from "$lib/Loading/Skeleton.svelte";
 import Message from "$lib/Loading/Message.svelte";
 import subsPlease from "$stores/subsPlease";
+import locale from "$stores/locale";
 import type { PageData } from "./$types";
 
 export let data: PageData;
@@ -33,7 +34,7 @@ onMount(async () => {
 });
 </script>
 
-<HeadTitle route="Schedule" path="/schedule" />
+<HeadTitle routeKey="schedule" path="/schedule" />
 
 <!-- <blockquote>
 	<select
@@ -62,12 +63,12 @@ onMount(async () => {
 <Spacer /> -->
 
 {#if !$subsPlease}
-  <Message message="Loading subtitle schedule ..." />
+  <Message message={$locale().schedule?.loadingSubtitle} />
 
   <Skeleton grid={true} count={7} height="15em" width="49.5%" />
 {:else}
   {#await scheduledMediaPromise}
-    <Message message="Loading schedule ..." />
+    <Message message={$locale().schedule?.loadingSchedule} />
 
     <Skeleton grid={true} count={7} height="15em" width="49.5%" />
   {:then scheduledMedia}
@@ -76,7 +77,7 @@ onMount(async () => {
         <Days subsPlease={$subsPlease} {scheduledMedia} {forceListMode} user={data.user} />
       </div>
     {:else}
-      <Message message="Loading schedule ..." />
+      <Message message={$locale().schedule?.loadingSchedule} />
 
       <Skeleton grid={true} count={7} height="15em" width="49.5%" />
     {/if}
-- 
cgit v1.2.3

