fix(i18n): Code-Quality-Review Korrekturen

- resolveLang() Hilfsfunktion extrahieren (DRY)
- JSDoc-Kommentar in I18n.init() korrigieren
- settings.export.btn Key für Export-Button trennen
- setLanguage('auto') im Reset-Handler aufrufen
This commit is contained in:
2026-03-22 14:07:17 +01:00
parent 522b177470
commit 1b39ac863b
3 changed files with 20 additions and 12 deletions
+18 -11
View File
@@ -224,6 +224,7 @@ const STRINGS = {
'settings.image_ref.desc': 'Bilder als Referenz anzeigen (nur aktuelle Session)',
'settings.export': 'Backup exportieren',
'settings.export.desc': 'Alle Boards, Notes und Einstellungen als JSON sichern',
'settings.export.btn': 'Export',
'settings.import': 'Backup importieren',
'settings.import.desc': 'JSON-Backup wiederherstellen',
'settings.browser_import': 'Browser-Lesezeichen',
@@ -514,6 +515,7 @@ const STRINGS = {
'settings.image_ref.desc': 'Show images as reference (current session only)',
'settings.export': 'Export backup',
'settings.export.desc': 'Save all boards, notes and settings as JSON',
'settings.export.btn': 'Export',
'settings.import': 'Import backup',
'settings.import.desc': 'Restore a JSON backup',
'settings.browser_import': 'Browser bookmarks',
@@ -621,16 +623,24 @@ function applyLanguage() {
});
}
/**
* 'auto' auflösen zu konkretem Sprachcode
* @param {string} lang - 'de', 'en' oder 'auto'
* @returns {string} 'de' oder 'en'
*/
function resolveLang(lang) {
return (lang === 'auto')
? (navigator.language.startsWith('de') ? 'de' : 'en')
: lang;
}
/**
* Sprache setzen, speichern und DOM aktualisieren
* @param {string} lang - 'de', 'en' oder 'auto'
*/
function setLanguage(lang) {
const resolved = (lang === 'auto')
? (navigator.language.startsWith('de') ? 'de' : 'en')
: lang;
currentLang = resolved;
document.documentElement.lang = resolved;
currentLang = resolveLang(lang);
document.documentElement.lang = currentLang;
applyLanguage();
}
@@ -643,17 +653,14 @@ const I18n = {
/**
* Initialisierung: Sprache aus Settings lesen, auflösen, DOM anwenden
* Wird nach applySettings() aufgerufen (settings-Objekt muss bereit sein)
* Muss NACH dem Laden des settings-Objekts aufgerufen werden
*/
init() {
const lang = (typeof settings !== 'undefined' && settings.language)
? settings.language
: 'auto';
const resolved = (lang === 'auto')
? (navigator.language.startsWith('de') ? 'de' : 'en')
: lang;
currentLang = resolved;
document.documentElement.lang = resolved;
currentLang = resolveLang(lang);
document.documentElement.lang = currentLang;
applyLanguage();
}
};