once interface language is selected or detected, automatically select default Bible variant based on language choice

This commit is contained in:
catarrh committed 2026-07-23 02:58:57 +03:00
1 parent 4be9eec908
commit ad6ec8f1ce
1 file changed
+9 -1
+9 -1
View File
@@ -45,6 +45,11 @@ const DEFAULT_SETTINGS: Settings = {
serviceRole: 'priest',
};
function defaultBibleForLanguage(lang: string): string {
const map: Record<string, string> = { 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?.();
});