From 05b3f4a28b212db65c4fdf48e40b7a2b224fe4e5 Mon Sep 17 00:00:00 2001 From: Steffen Becker Date: Thu, 20 Aug 2026 15:19:23 +0200 Subject: [PATCH] fix: first-run spell-check language follows the browser locale loadDocumentLanguage falls back to resolveBrowserLocale() instead of a hardcoded 'en', so a de-* browser starts with the German dictionary. A saved choice and the document's own fo:language still win. --- src/lib/storage/documentLanguage.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/lib/storage/documentLanguage.ts b/src/lib/storage/documentLanguage.ts index 08cf611..4da4be7 100644 --- a/src/lib/storage/documentLanguage.ts +++ b/src/lib/storage/documentLanguage.ts @@ -2,6 +2,8 @@ // localStorage and round-tripped through the .odt (fo:language/fo:country on // the default paragraph style). 'none' disables checking. +import { resolveBrowserLocale } from '../i18n/config'; + export const NO_LANGUAGE = 'none'; export type DocumentLanguage = string; @@ -20,8 +22,6 @@ export const LANGUAGES: LanguageDef[] = [ { code: 'de', label: 'Deutsch', odf: { language: 'de', country: 'DE' } }, ]; -export const DEFAULT_LANGUAGE: DocumentLanguage = 'en'; - const KEY = 'edentext-doc-language'; export function findLanguage(code: DocumentLanguage): LanguageDef | undefined { @@ -32,9 +32,10 @@ function isValid(code: string): boolean { return code === NO_LANGUAGE || !!findLanguage(code); } +// First run follows the browser language; its en/de codes match the dictionaries. export function loadDocumentLanguage(): DocumentLanguage { const code = localStorage.getItem(KEY); - return code && isValid(code) ? code : DEFAULT_LANGUAGE; + return code && isValid(code) ? code : resolveBrowserLocale(); } export function saveDocumentLanguage(code: DocumentLanguage): void {