From 85f55c19a6fc590f8e1e3bb586efdb383c4e5f23 Mon Sep 17 00:00:00 2001 From: Hibryda Date: Mon, 23 Mar 2026 21:35:47 +0100 Subject: [PATCH] =?UTF-8?q?fix(electrobun):=20remove=20i18n=20=20cycle=20?= =?UTF-8?q?=E2=80=94=20move=20lang/dir=20sync=20into=20setLocale()?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ui-electrobun/src/mainview/App.svelte | 6 +----- ui-electrobun/src/mainview/i18n.svelte.ts | 7 +++++++ 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/ui-electrobun/src/mainview/App.svelte b/ui-electrobun/src/mainview/App.svelte index e64d573..2ff5549 100644 --- a/ui-electrobun/src/mainview/App.svelte +++ b/ui-electrobun/src/mainview/App.svelte @@ -161,11 +161,7 @@ }; }); - // ── i18n: keep lang and dir in sync ────────────────── - $effect(() => { - document.documentElement.lang = getLocale(); - document.documentElement.dir = getDir(); - }); + // ── i18n: lang/dir sync is handled inside setLocale() — no $effect needed ── // ── Init ──────────────────────────────────────────────────── onMount(() => { diff --git a/ui-electrobun/src/mainview/i18n.svelte.ts b/ui-electrobun/src/mainview/i18n.svelte.ts index 8c51084..55e6db6 100644 --- a/ui-electrobun/src/mainview/i18n.svelte.ts +++ b/ui-electrobun/src/mainview/i18n.svelte.ts @@ -86,6 +86,13 @@ export async function setLocale(tag: string): Promise { _intl = createIntl({ locale: tag, messages: _messages }, cache); _v++; + // Sync lang and dir attributes + if (typeof document !== 'undefined') { + document.documentElement.lang = tag; + const meta = AVAILABLE_LOCALES.find(l => l.tag === tag); + document.documentElement.dir = meta?.dir ?? 'ltr'; + } + // Persist preference try { await appRpc?.request['settings.set']({ key: 'locale', value: tag });