From ad6ec8f1cef65a40616623fae026e41c9f704bbf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BD=D1=82=D0=BE=D0=BD=20=D0=A2=D1=80=D0=BE=D1=88?= =?UTF-8?q?=D0=B8=D0=BD?= Date: Thu, 23 Jul 2026 02:58:57 +0300 Subject: [PATCH] once interface language is selected or detected, automatically select default Bible variant based on language choice --- src/ui/settings-view.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/ui/settings-view.ts b/src/ui/settings-view.ts index 0f5e4d0..edf6f31 100644 --- a/src/ui/settings-view.ts +++ b/src/ui/settings-view.ts @@ -45,6 +45,11 @@ const DEFAULT_SETTINGS: Settings = { serviceRole: 'priest', }; +function defaultBibleForLanguage(lang: string): string { + const map: Record = { en: 'kjv', ru: 'synod', cu: 'elis' }; + return map[lang] || 'kjv'; +} + function detectBrowserLanguage(): LanguageCode { const lang = navigator.language || (navigator as any).userLanguage || ''; if (lang.startsWith('ru')) return 'ru'; @@ -65,7 +70,7 @@ function loadSettings(): Settings { return { ...DEFAULT_SETTINGS, ...parsed }; } } catch { /* ignore */ } - return { ...DEFAULT_SETTINGS, language: detectBrowserLanguage() }; + return { ...DEFAULT_SETTINGS, language: detectBrowserLanguage(), defaultBibleVersion: defaultBibleForLanguage(detectBrowserLanguage()) }; } function saveSettings(settings: Settings) { @@ -248,7 +253,10 @@ export class SettingsView { // Event listeners document.getElementById('language')?.addEventListener('change', (e) => { this.settings.language = (e.target as HTMLSelectElement).value; + this.settings.defaultBibleVersion = defaultBibleForLanguage(this.settings.language); saveSettings(this.settings); + const bibleSelect = document.getElementById('default-bible') as HTMLSelectElement | null; + if (bibleSelect) bibleSelect.value = this.settings.defaultBibleVersion; this.onLanguageChange?.(); });