var ischangelanguage = window.localStorage.getItem("languageNow"); class I18n { constructor() { this.currentLang = ischangelanguage ? ischangelanguage : "en"; this.translations = translations; } // 修改t方法以处理嵌套的键 t(key) { const keys = key.split('.'); let value = this.translations[this.currentLang]; // 遍历嵌套的键 for (const k of keys) { if (value && value[k]) { value = value[k]; } else { return key; // 如果找不到翻译,返回原始键 } } return value; } setLanguage(lang) { if (this.translations[lang]) { this.currentLang = lang; } } toggleLanguage() { ischangelanguage = this.currentLang = this.currentLang === 'en' ? 'zh' : 'en'; window.localStorage.setItem("languageNow", this.currentLang) this.translatePage(); } translatePage() { document.querySelectorAll('[data-i18n]').forEach(element => { const key = element.getAttribute('data-i18n'); element.textContent = this.t(key); }); } } // 创建i18n实例 const i18n = new I18n(); if (ischangelanguage == 'zh') { console.log("进来了") i18n.translatePage() } // 页面加载完成后初始化 document.addEventListener('DOMContentLoaded', () => { // 初始化页面翻译 i18n.translatePage(); // 添加语言切换按钮事件监听 const langToggle = document.getElementById('langToggle'); if (langToggle) { langToggle.addEventListener('click', () => { i18n.toggleLanguage(); }); } }); function mobileLang() { i18n.toggleLanguage(); return ischangelanguage }