fix(settings): persist language preference

This commit is contained in:
pixelpaws
2025-09-23 22:00:20 +08:00
parent 8aa76ce5c1
commit 4d2c60d59b

View File

@@ -1151,13 +1151,15 @@ export class SettingsManager {
async saveLanguageSetting() {
const element = document.getElementById('languageSelect');
if (!element) return;
const selectedLanguage = element.value;
try {
// Use the universal save method for language (frontend-only setting)
await this.saveSetting('language', selectedLanguage);
this.persistLanguageToLocalStorage(selectedLanguage);
// Reload the page to apply the new language
window.location.reload();
@@ -1166,6 +1168,30 @@ export class SettingsManager {
}
}
persistLanguageToLocalStorage(language) {
const STORAGE_PREFIX = 'lora_manager_';
try {
const storageKey = `${STORAGE_PREFIX}settings`;
const currentSettings = localStorage.getItem(storageKey);
let parsedSettings = {};
if (currentSettings) {
try {
parsedSettings = JSON.parse(currentSettings) || {};
} catch (parseError) {
console.warn('Failed to parse existing settings from localStorage, resetting to defaults');
parsedSettings = {};
}
}
parsedSettings.language = language;
localStorage.setItem(storageKey, JSON.stringify(parsedSettings));
} catch (error) {
console.warn('Failed to persist language preference to localStorage:', error);
}
}
toggleInputVisibility(button) {
const input = button.parentElement.querySelector('input');
const icon = button.querySelector('i');