From 30a7c24140958f96e627ee04d26535ab1b756645 Mon Sep 17 00:00:00 2001 From: Ilia Denisov Date: Mon, 15 Jun 2026 13:52:52 +0200 Subject: [PATCH] fix(ui): interface language follows the device, not the Telegram bot MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit On login the UI no longer overrides the interface language from the account's preferred_language. The live interface follows the device — the explicit local choice (saved, locked) or the system-language guess — so opening the mini-app via the ru-bot on an English system keeps the interface English (it was forced to Russian by the account seed). preferred_language is still written from Settings and used for out-of-app push routing; it just no longer dictates the UI on launch. --- ui/src/lib/app.svelte.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ui/src/lib/app.svelte.ts b/ui/src/lib/app.svelte.ts index a079f9f..69e2d27 100644 --- a/ui/src/lib/app.svelte.ts +++ b/ui/src/lib/app.svelte.ts @@ -341,7 +341,11 @@ async function adoptSession(s: Session): Promise { await saveSession(s); try { app.profile = await gateway.profileGet(); - if (!app.localeLocked) setLocale(localeFrom(app.profile.preferredLanguage, app.locale)); + // The live interface language follows the device — the explicit local choice (locked, saved + // in prefs) or the system guess made at bootstrap — and is no longer overridden from the + // account here. preferred_language stays the user's saved choice (written from Settings, + // and used for out-of-app push routing), but the Telegram bot a user signs in through must + // not dictate the UI: a ru-bot launch on an English system stays English. } catch (err) { handleError(err); }