🐛 修復語系切換問題

This commit is contained in:
Minidoracat 2025-06-13 16:51:44 +08:00
parent 8e390037b3
commit 7bdb1a0346
2 changed files with 13 additions and 6 deletions

View File

@ -270,15 +270,19 @@ class I18nManager {
if (selector) { if (selector) {
// 設置當前值 // 設置當前值
selector.value = this.currentLanguage; selector.value = this.currentLanguage;
console.log(`🔧 setupLanguageSelectors: 設置 select.value = ${this.currentLanguage}`);
// 移除舊的事件監聽器(避免重複綁定) // 移除舊的事件監聽器(如果存在)
const newSelector = selector.cloneNode(true); if (selector._i18nChangeHandler) {
selector.parentNode.replaceChild(newSelector, selector); selector.removeEventListener('change', selector._i18nChangeHandler);
}
// 添加事件監聽器 // 添加新的事件監聽器
newSelector.addEventListener('change', (e) => { selector._i18nChangeHandler = (e) => {
console.log(`🔄 i18n select change event: ${e.target.value}`);
this.setLanguage(e.target.value); this.setLanguage(e.target.value);
}); };
selector.addEventListener('change', selector._i18nChangeHandler);
} }
// 新版現代化語言選擇器 // 新版現代化語言選擇器

View File

@ -440,7 +440,9 @@
// 更新下拉選單選項 // 更新下拉選單選項
const languageSelect = Utils.safeQuerySelector('#settingsLanguageSelect'); const languageSelect = Utils.safeQuerySelector('#settingsLanguageSelect');
if (languageSelect) { if (languageSelect) {
console.log(`🔧 SettingsManager.applyLanguageSettings: 設置 select.value = ${this.currentSettings.language}`);
languageSelect.value = this.currentSettings.language; languageSelect.value = this.currentSettings.language;
console.log(`🔧 SettingsManager.applyLanguageSettings: 實際 select.value = ${languageSelect.value}`);
} }
// 更新語言選項顯示(兼容舊版卡片式選擇器) // 更新語言選項顯示(兼容舊版卡片式選擇器)
@ -568,6 +570,7 @@
if (languageSelect) { if (languageSelect) {
languageSelect.addEventListener('change', function(e) { languageSelect.addEventListener('change', function(e) {
const lang = e.target.value; const lang = e.target.value;
console.log(`🔄 SettingsManager select change event: ${lang}`);
self.set('language', lang); self.set('language', lang);
}); });
} }