aboutsummaryrefslogtreecommitdiff
path: root/src/lib/Home/HeadTitle.svelte
diff options
context:
space:
mode:
authorFuwn <[email protected]>2026-05-24 13:22:34 +0000
committerFuwn <[email protected]>2026-05-24 13:22:34 +0000
commit56a7a7851b09cb30a5cd543c8cb4f926109b4290 (patch)
treea620f908405fa48fd601580c5a48432831ec5c33 /src/lib/Home/HeadTitle.svelte
parentfix(layout): preserve list panel when clicking action buttons in summary (diff)
downloaddue.moe-56a7a7851b09cb30a5cd543c8cb4f926109b4290.tar.xz
due.moe-56a7a7851b09cb30a5cd543c8cb4f926109b4290.zip
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.
Diffstat (limited to 'src/lib/Home/HeadTitle.svelte')
-rw-r--r--src/lib/Home/HeadTitle.svelte21
1 files changed, 18 insertions, 3 deletions
diff --git a/src/lib/Home/HeadTitle.svelte b/src/lib/Home/HeadTitle.svelte
index 0759943f..73cf3e3d 100644
--- a/src/lib/Home/HeadTitle.svelte
+++ b/src/lib/Home/HeadTitle.svelte
@@ -1,9 +1,24 @@
<script lang="ts">
import { siteUrl } from "$lib/Utility/appOrigin";
+import locale from "$stores/locale";
+import type { Locale } from "$lib/Locale/layout";
-let { route = undefined, path = "/" }: { route?: string; path?: string } =
- $props();
-const title = $derived((route ? `${route} • ` : "") + "due.moe");
+type HeadTitleKey = keyof NonNullable<Locale["headTitle"]>;
+
+let {
+ route = undefined,
+ routeKey = undefined,
+ path = "/",
+}: {
+ route?: string;
+ routeKey?: HeadTitleKey;
+ path?: string;
+} = $props();
+
+const resolved = $derived(
+ routeKey ? ($locale().headTitle?.[routeKey] ?? routeKey) : route,
+);
+const title = $derived((resolved ? `${resolved} • ` : "") + "due.moe");
</script>
<svelte:head>