From 9d9ff0fce5bedcfe42d65d032aba4f4aec9653dc Mon Sep 17 00:00:00 2001 From: Fuwn Date: Sun, 21 Jan 2024 02:51:25 -0800 Subject: fix(layout): locale reactivity --- src/lib/Settings/SettingCheckboxToggle.svelte | 7 ++++--- src/routes/+layout.svelte | 11 +++-------- 2 files changed, 7 insertions(+), 11 deletions(-) (limited to 'src') diff --git a/src/lib/Settings/SettingCheckboxToggle.svelte b/src/lib/Settings/SettingCheckboxToggle.svelte index 87f5b330..a2af0d25 100644 --- a/src/lib/Settings/SettingCheckboxToggle.svelte +++ b/src/lib/Settings/SettingCheckboxToggle.svelte @@ -8,7 +8,7 @@ export let sectionBreak = false; export let disabled = false; - export let text: string; + export let text: string | (() => string); export let setting: SettingsBooleanKeys[keyof SettingsBooleanKeys]; export let lineBreak = true; export let onChange: () => void = () => { @@ -17,6 +17,7 @@ export let invert = false; $: checked = invert ? !$settings[setting] : $settings[setting]; + $: field = text instanceof Function ? text() : text; // const toggler = (key: keyof Settings) => [ // () => @@ -58,11 +59,11 @@ > {#if disabled} - {@html text} + {field} {:else} - {@html text} + {field} {/if} diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index 505096b9..6a0163d2 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -13,7 +13,7 @@ import Notification from '$lib/Notification/Notification.svelte'; import Root from '$lib/Home/Root.svelte'; import root from '$lib/Utility/root'; - import { addMessages, init, _ } from 'svelte-i18n'; + import { addMessages, init, _, locale } from 'svelte-i18n'; import english from '$lib/Locale/english'; import japanese from '$lib/Locale/japanese'; import type { LocaleDictionary } from '$lib/Locale/layout'; @@ -22,14 +22,9 @@ addMessages('en', english as unknown as LocaleDictionary); addMessages('ja', japanese as unknown as LocaleDictionary); + init({ fallbackLocale: 'en', initialLocale: $settings.displayLanguage }); - $: { - // import(`../lib/Locale/${$settings.displayLanguage}`).then((module) => { - // addMessages($settings.displayLanguage, module.default); - // }); - - init({ fallbackLocale: 'en', initialLocale: $settings.displayLanguage }); - } + $: locale.set($settings.displayLanguage); let currentUserIdentity = { name: '', -- cgit v1.2.3