From 7bdb1a03468a6c9d680a13e9d0b3f5463d22deba Mon Sep 17 00:00:00 2001 From: Minidoracat Date: Fri, 13 Jun 2025 16:51:44 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20=E4=BF=AE=E5=BE=A9=E8=AA=9E?= =?UTF-8?q?=E7=B3=BB=E5=88=87=E6=8F=9B=E5=95=8F=E9=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/mcp_feedback_enhanced/web/static/js/i18n.js | 16 ++++++++++------ .../web/static/js/modules/settings-manager.js | 3 +++ 2 files changed, 13 insertions(+), 6 deletions(-) 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); }); }