frontend: UI-Default-Sprache aus der Browsersprache (Fallback DE)
Ohne gespeicherte werkbaum-lang wählt detectLang() die erste vom Browser gemeldete Sprache (navigator.languages), für die eine Übersetzung existiert (Primär-Subtag; de-AT->de, zh-Hans->zh), sonst Deutsch. Greift auch nach dem Reset. Deutsch bleibt Quellsprache. Als D21 dokumentiert. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
095dbfb63e
commit
29e144eddf
+14
-1
@@ -1146,8 +1146,21 @@ function applyMobile(){
|
||||
mqMobile.addEventListener('change', applyMobile);
|
||||
|
||||
restoreState(); /* Editortext + GUI-Zustand aus dem Browser wiederherstellen */
|
||||
|
||||
/* Default-Sprache: gespeicherte Wahl, sonst die erste vom Browser gemeldete
|
||||
Sprache (navigator.languages), die wir übersetzt haben — sonst Deutsch.
|
||||
Nur der Primär-Subtag zählt (z. B. "de-AT" -> "de", "zh-Hans" -> "zh"). */
|
||||
function detectLang(){
|
||||
const cands = (navigator.languages && navigator.languages.length)
|
||||
? navigator.languages : [navigator.language];
|
||||
for(const c of cands){
|
||||
const primary = (c || '').toLowerCase().split('-')[0];
|
||||
if(I18N[primary]) return primary;
|
||||
}
|
||||
return 'de';
|
||||
}
|
||||
let startLang = 'de';
|
||||
try{ startLang = localStorage.getItem('werkbaum-lang') || 'de'; }catch(_){}
|
||||
try{ startLang = localStorage.getItem('werkbaum-lang') || detectLang(); }catch(_){ startLang = detectLang(); }
|
||||
applyLang(I18N[startLang] ? startLang : 'de'); /* setzt Texte + rendert */
|
||||
applyMobile(); /* Mobil-Verhalten (nach Sprache/Restore) anwenden */
|
||||
|
||||
|
||||
Reference in New Issue
Block a user