diff --git a/src/mcp_feedback_enhanced/web/static/js/i18n.js b/src/mcp_feedback_enhanced/web/static/js/i18n.js index 8afe4dd..2cd9f8a 100644 --- a/src/mcp_feedback_enhanced/web/static/js/i18n.js +++ b/src/mcp_feedback_enhanced/web/static/js/i18n.js @@ -270,15 +270,19 @@ class I18nManager { if (selector) { // 設置當前值 selector.value = this.currentLanguage; + console.log(`🔧 setupLanguageSelectors: 設置 select.value = ${this.currentLanguage}`); - // 移除舊的事件監聽器(避免重複綁定) - const newSelector = selector.cloneNode(true); - selector.parentNode.replaceChild(newSelector, selector); + // 移除舊的事件監聽器(如果存在) + if (selector._i18nChangeHandler) { + 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); - }); + }; + selector.addEventListener('change', selector._i18nChangeHandler); } // 新版現代化語言選擇器 diff --git a/src/mcp_feedback_enhanced/web/static/js/modules/settings-manager.js b/src/mcp_feedback_enhanced/web/static/js/modules/settings-manager.js index 80e6301..2d68b31 100644 --- a/src/mcp_feedback_enhanced/web/static/js/modules/settings-manager.js +++ b/src/mcp_feedback_enhanced/web/static/js/modules/settings-manager.js @@ -440,7 +440,9 @@ // 更新下拉選單選項 const languageSelect = Utils.safeQuerySelector('#settingsLanguageSelect'); if (languageSelect) { + console.log(`🔧 SettingsManager.applyLanguageSettings: 設置 select.value = ${this.currentSettings.language}`); languageSelect.value = this.currentSettings.language; + console.log(`🔧 SettingsManager.applyLanguageSettings: 實際 select.value = ${languageSelect.value}`); } // 更新語言選項顯示(兼容舊版卡片式選擇器) @@ -568,6 +570,7 @@ if (languageSelect) { languageSelect.addEventListener('change', function(e) { const lang = e.target.value; + console.log(`🔄 SettingsManager select change event: ${lang}`); self.set('language', lang); }); }