i18n: Sprache oben, data-i18n ergänzt, localStorage-Persistenz

- Sprachdropdown an den Anfang des Einstellungs-Panels verschoben
- data-i18n für Settings-Header, Speichern-Button und Nav-Tabs ergänzt,
  damit diese beim Sprachwechsel sofort übersetzt werden
- setLang() speichert gewählte Sprache in localStorage (bleibt über
  Seitenreloads hinweg erhalten); currentLang wird beim Modulstart aus
  localStorage initialisiert
- getLang() in openSettingsModal statt state.settings.language, damit
  das Dropdown immer die aktive Sprache zeigt
This commit is contained in:
2026-03-27 15:30:15 +01:00
parent cd5d866cb1
commit 7e101368bf
3 changed files with 20 additions and 17 deletions

View File

@@ -364,13 +364,16 @@ const translations = {
},
};
let currentLang = 'de';
let currentLang = (() => {
try { const l = localStorage.getItem('lang'); return (l && translations[l]) ? l : 'de'; } catch (_) { return 'de'; }
})();
export function getLang() { return currentLang; }
export function setLang(lang) {
currentLang = (lang && translations[lang]) ? lang : 'de';
document.documentElement.lang = currentLang;
try { localStorage.setItem('lang', currentLang); } catch (_) {}
applyLang();
}