once interface language is selected or detected, automatically select default Bible variant based on language choice
This commit is contained in:
1 parent
4be9eec908
commit
ad6ec8f1ce
1 file changed
+9
-1
@@ -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?.();
|
||||
});
|
||||
|
||||
|
||||
Reference in new issue
Block a user