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/+error.svelte | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

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

diff --git a/src/routes/+error.svelte b/src/routes/+error.svelte
index 71482ffb..a67cdbbf 100644
--- a/src/routes/+error.svelte
+++ b/src/routes/+error.svelte
@@ -2,6 +2,7 @@
 import { page } from "$app/stores";
 import { closest } from "$lib/Error/path";
 import Popup from "$lib/Layout/Popup.svelte";
+import locale from "$stores/locale";
 
 $: suggestion = closest($page.url.pathname.replace("/", ""), [
 	"birthdays",
@@ -18,11 +19,11 @@ $: suggestion = closest($page.url.pathname.replace("/", ""), [
 
 <Popup>
   <p style="text-align: center;">
-    <a href={$page.url.pathname}>{$page.url.pathname}</a> not found
+    <a href={$page.url.pathname}>{$page.url.pathname}</a> {$locale().errors?.routeNotFound}
   </p>
 
   <blockquote style="margin: 0 0 0 1.5rem;">
-    Did you mean "<a
+    {$locale().errors?.didYouMean} "<a
       href={suggestion}
       style={suggestion === '...' ? 'pointer-events: none; color: inherit;' : ''}
       >{suggestion.charAt(0).toUpperCase() + suggestion.slice(1)}</a
-- 
cgit v1.2.3

