Releases: ChuwuYo/MultiLangSwitcher
Releases · ChuwuYo/MultiLangSwitcher
v1.9.7
What's Changed
- ver: update to v1.8.85 by @ChuwuYo in #40
- ver: update to v1.8.90 by @ChuwuYo in #41
- 文档大幅精简与更新 by @ChuwuYo in #42
- 重构更新检查器; 简化ServiceWorker并发控制 by @ChuwuYo in #43
- ver: update to v1.9.0 by @ChuwuYo in #44
- ver: update to v1.9.5 by @ChuwuYo in #45
- 优化 DOM 批量更新与界面响应速度 by @ChuwuYo in #46
- ver: update to v1.9.7 by @ChuwuYo in #49
- refactor: 优化错误消息DOM操作,提升安全性 @ChuwuYo in #50
Full Changelog: v1.8.83...v1.9.7
v1.8.83
v1.8.83(含迭代内容)
主要改动
1. 功能增强
- ✅ 菜单功能完善 - 添加浏览器拓展右键菜单
- ✅ 重构 Service Worker 初始化逻辑:
- 统一初始化入口:创建了单一的
initialize函数,用于处理扩展安装、浏览器启动和 Service Worker 意外重启时的状态恢复,确保了逻辑的一致性 - 实现懒加载守卫:引入
ensureInitialized机制,在处理onMessage、onUpdated等事件前检查并确保初始化已完成,防止因 Service Worker 休眠后重启导致的状态丢失问题
- 统一初始化入口:创建了单一的
- ✅ 修复并发与竞态问题:
- 引入互斥机制:为
updateHeaderRules添加 Promise 队列,确保规则更新操作串行执行,避免并发调用导致的状态不一致 - 防抖合并请求:实现短时间内相同语言切换请求的自动合并,减少不必要的API调用和日志
- 优化缓存策略:改进
rulesCache机制,自动切换也能安全使用短路返回,因为规则仅由本扩展管理 - 状态同步增强:确保
lastAppliedLanguage和rulesCache在并发场景下的一致性
- 引入互斥机制:为
- ✅ 性能优化 - 修复自动切换时的无效更新与性能浪费问题,通过改进缓存检查逻辑避免不必要的 API 调用
2. 代码优化
- ✅ 清理无效代码 - 去除无效变量 err
- ✅ 重构 createContextMenusOnce 使用 async/await(Promise API),符合代码规范
- ✅ 右键菜单统一使用英文,去除 i18n 化(简化实现)
- ✅ 简化URL检查条件
- ✅ 优化动态规则ID数组创建逻辑,采用
.some()方法以兼顾性能与代码表现力 - ✅ 将
updateHeaderRules拆分为外部包装器和内部实现,提供更好的并发控制 - ✅ 修复重试逻辑中的递归调用问题,避免绕过并发控制机制,优化错误处理
- ✅ 优化按钮代码
- ✅ 优化 Chrome API 调用方式,移除不必要的 Promise 包装,直接使用 async/await
- ✅ 重构调试 UI 的代码结构,将回调函数改为 async/await 方式,调整了部分变量和函数的命名,移除冗余的代码
- ✅ 优化多处异步操作并移除错误处理冗余
3. Bug 修复
- ✅ 修复
tabs.onUpdated过滤条件 Bug,该 Bug 会导致 http 页面不触发自动切换 - ✅ 修复动态规则清理范围过宽问题,现在只移除与
RULE_ID相关的规则,避免误删其他动态规则 - ✅ 收窄 DNR 资源类型与匹配范围
- ✅ 修复debug-ui.js资源管理问题
- ✅ detect.js资源管理修复
- ✅ background.js资源管理修复
文件变更清单
新增文件
- Problems.md - LLM整理的现存问题(v1.8.67)
- Wiki_EN.md - 英文版Wiki(v1.8.69)
- Resource_Management_Guide.md - 资源管理最佳实践指南(v1.8.79)
重命名文件
修改文件
- manifest.json - 版本号更新(v1.8.67、v1.8.68、v1.8.69、v1.8.70、v1.8.71、v1.8.72、v1.8.73、v1.8.74、v1.8.79、v1.8.83);添加 contextMenus 权限(v1.8.67)
- TODO.md - 修改待办事项(v1.8.67、v1.8.79)
- Update.md - 版本更新记录(v1.8.67、v1.8.68、v1.8.69、v1.8.70、v1.8.71、v1.8.72、v1.8.73、v1.8.74、v1.8.79、v1.8.83)
- background.js - 添加右键菜单初始化标志(v1.8.67);重构 contextMenus 创建逻辑(async/await),右键菜单统一使用英文,去除 i18n 化(v1.8.68);修复
tabs.onUpdated的 URL 过滤条件 Bug(v1.8.68);简化URL检查条件(v1.8.68);重构了初始化和事件处理逻辑(v1.8.69);修复动态规则清理范围过宽问题(v1.8.70);优化动态规则ID数组创建逻辑(v1.8.70);引入并发控制机制,添加 Promise 队列和防抖机制,修复并发与竞态问题(v1.8.71);优化异步操作并移除错误处理冗余(v1.8.73); 修复自动切换时的无效更新与性能浪费问题(v1.8.73);收窄 DNR 资源类型与匹配范围(v1.8.74);添加完整的resourceTracker系统管理事件监听器和定时器(v1.8.80);替换setTimeout调用为resourceTracker.setTimeout,跟踪所有Chrome API事件监听器(v1.8.81);添加扩展暂停时的自动清理机制(v1.8.82) - shared-i18n-base.js - 优化翻译加载机制,避免重复加载脚本文件,完善翻译回退(v1.8.68)
- I18n_Usage_Guide.md - 内容更新(v1.8.67、v1.8.68)
- .gitignore - git忽略文件更新(v1.8.67)
- Problems.md - 问题列表更新(v1.8.68、v1.8.69、v1.8.70、v1.8.71、v1.8.73、v1.8.74)
- Wiki.md - Wiki更新(v1.8.69、v1.8.70)
- Wiki_EN.md - 英文Wiki更新(v1.8.70)
- i18n/background-*.js - 完善相关翻译(v1.8.71、v1.8.73)
- toggle.js - 优化按钮代码(v1.8.71);添加完整的resourceTracker系统管理事件监听器(v1.8.80);替换addEventListener调用为resourceTracker.addEventListener(v1.8.81);添加页面卸载时的自动清理机制(v1.8.82);跟踪语言切换按钮、主题切换按钮、系统主题监听器和页面加载事件(v1.8.83)
- popup.js - 优化 Chrome API 调用方式,直接使用 async/await(v1.8.72);优化按钮处理逻辑为event事件处理(v1.8.73)
- debug-ui.js - 优化代码结构,将回调函数改为 async/await 方式,调整了部分变量和函数的命名,移除冗余的代码(v1.8.72);添加resourceTracker系统统一管理资源生命周期(v1.8.75);修复15+个未管理的事件监听器内存泄漏(v1.8.76);修复1个setInterval和2个setTimeout定时器泄漏(v1.8.77);修复2个消息监听器资源泄漏(v1.8.78);添加页面卸载时的自动清理机制(v1.8.79)
- shared-utils.js - 完善fallback翻译键(v1.8.72)
- Code_Style_Guide.md - 代码风格指南更新(v1.8.72)
- shared-update-checker.js - 优化异步操作并移除错误处理冗余(v1.8.73)
- domain-rules-manager.js - 优化异步操作并移除错误处理冗余(v1.8.73)
- detect.js - 添加完整的resourceTracker系统管理所有资源类型(v1.8.80);替换多个函数创建为resourceTracker.create函数,替换定时器调用为resourceTracker.setTimeout(v1.8.81);- 添加页面卸载时的自动清理机制(v1.8.82)
移除内容
- 移除未使用的变量 chrome.runtime.lastError 读取语句
- 已完成的TODO / 已修复的问题
- 将
performInitialization和handleAutoSwitchToggleRequest中的重复规则应用逻辑提取到新的共享函数applyLanguageRulesBasedOnState中 - 移除大量prromise包装
What's Changed
- ver: update to v1.8.67 by @ChuwuYo in #31
- ver: update to v1.8.68 by @ChuwuYo in #32
- ver: update to v1.8.69 by @ChuwuYo in #33
- ver: update to v1.8.70 by @ChuwuYo in #34
- ver: update to v1.8.71 by @ChuwuYo in #35
- ver: update to v1.8.72 by @ChuwuYo in #36
- ver: update to v1.8.73 by @ChuwuYo in #37
- ver: update to v1.8.74 by @ChuwuYo in #38
- ver: update to v1.8.83 by @ChuwuYo in #39
Full Changelog: v1.8.66...v1.8.83
v1.8.66
v1.8.66(含迭代内容)
主要改动
1. 功能增强
- ✅ Chrome Storage API 错误处理完善 - 为所有
chrome.storage.local.get调用添加chrome.runtime.lastError检查,防止静默失败 - ✅ 错误处理一致性提升 - 统一存储访问的错误处理模式,遵循代码风格指南的最佳实践
- ✅ declarativeNetRequest 批量处理优化 - 实现规则更新的批量处理,单次 API 调用同时移除旧规则和添加新规则
- ✅ 共享工具优化 - 修复i18n的多级加载机制,完善降级处理
- ✅ 安全问题修复 - innerHTML 的XSS 安全修复
- ✅ 完善缓存管理功能 - 域名测试逻辑完善,状态传递修复,国际化支持
- ✅ Service Worker架构合规性修复 - 确保background.js独占管理所有Chrome Extension API,UI组件只通过消息传递通信
- ✅ 资源管理系统重构 - 实现统一的资源跟踪器,解决事件监听器清理不完整和定时器/控制器资源泄漏问题,减少内存泄漏风险
- ✅ 异常传播链修复 - 修复domain-rules-manager.js中的异常传播链断裂问题,防止静默失败,确保错误能够被正确处理和记录
2. 代码优化
- ✅ API 调用效率提升 - 语言切换操作从2次 API 调用优化为1次批量调用
- ✅ 残留清理 - 清理Accept-Language 格式说明多余的无效代码与未使用的分组规则代码
- ✅ Service Worker 优化 - 重构缓存操作处理相关代码
- ✅ 重构缓存管理函数 - 提取公共函数,统一响应处理模式
- ✅ UI冲突调整 - 删除缓存测试卡片多余的js调试样式
- ✅ Manifest V3 API 现代化 - 将
chrome.storage.local.get从回调方式升级为原生Promise API,简化代码并改善错误处理 - ✅ 样式与逻辑分离优化 - 移除JavaScript中的内联样式设置,统一使用Bootstrap工具类(
mt-2)管理间距 - ✅ 代码重复消除 - 删除域名缓存测试中的冗余最终检查逻辑,提高代码可读性和维护性
- ✅ CSS最佳实践修复 - 移除
!important声明,使用标准的overflow-wrap: break-word替代已废弃的word-break: break-word - ✅ 代码风格规范化 - 将国际化文件外的
var声明替换为const/let,传统函数声明替换为箭头函数 - ✅ 架构合规性重构 - 修复Service Worker独占性违规,移除UI组件中的直接Chrome API调用,实现完整的消息传递代理机制
- ✅ 代码风格规范化 - 修复debug-ui.js中剩余的传统函数声明,完善Chrome API调用的消息传递机制,规范toggle.js
- ✅ Promise错误处理完善 - 修复background.js中的空catch块,为所有直接的chrome.runtime.sendMessage调用添加错误处理,完善detect.js中的Promise链错误处理
- ✅ 统一资源管理架构 - 创建resourceTracker系统统一管理定时器、控制器和事件监听器,实现一键清理机制,提升代码可维护性
文件变更清单
新增文件
重命名文件
修改文件
- manifest.json - 版本号更新(v1.8.61、v1.8.62、v1.8.63、v1.8.64)
- Domain_Matching_Guide.md - 合并.60版本修改历史(v1.8.61)
- popup.js - Chrome Storage API 错误处理修复,代码风格优化(v1.8.61);代码风格规范化,架构合规性重构(v1.8.64);Promise错误处理完善(v1.8.65);资源管理系统重构,实现统一资源跟踪器(v1.8.66)
- debug-ui.js - Chrome Storage API 错误处理修复(v1.8.61);添加域名匹配缓存管理功能的传递逻辑(v1.8.62);重构并修复缓存管理的状态传递,样式与逻辑分离优化(v1.8.63);代码风格规范化,架构合规性重构(v1.8.64);Promise错误处理完善(v1.8.65)
- domain-rules-manager.js - Chrome Storage API 错误处理修复(v1.8.61);清理未使用的分组规则代码,innerHTML 的XSS安全修复,重构缓存管理函数(v1.8.62);异常传播链修复,防止静默失败(v1.8.66)
- TODO.md - 修改待办事项(v1.8.61、v1.8.62、v1.8.63)
- Update.md - 版本更新记录(v1.8.61、v1.8.62、v1.8.63、v1.8.64)
- background.js - Chrome Storage API 错误处理修复,declarativeNetRequest 批量处理优化,性能监控(v1.8.61);添加域名匹配缓存管理功能的处理逻辑,重构缓存操作处理相关代码(v1.8.62);重构并修复缓存管理的测试逻辑,Manifest V3 API现代化,代码重复消除(v1.8.63);架构合规性重构,添加Chrome API代理处理器(v1.8.64);Promise错误处理完善(v1.8.65)
- background-zh.js - 添加相关翻译键(v1.8.61、v1.8.62、v1.8.63、v1.8.65)
- background-en.js - 添加相关翻译键(v1.8.61、v1.8.62、v1.8.63、v1.8.65)
- shared-utils.js - 修复i18n的多级加载机制,完善降级处理(v1.8.62)
- debug-zh.js - 添加相关翻译键(v1.8.61、v1.8.62、v1.8.63)
- debug-en.js - 添加相关翻译键(v1.8.61、v1.8.62、v1.8.63)
- debug.html - 添加域名匹配缓存管理功能的卡片UI(v1.8.62);修复缓存管理卡片UI,CSS最佳实践修复(v1.8.63)
- toggle.js - 代码规范化(v1.8.64)
- detect.js - Promise错误处理完善(v1.8.65)
- popup-zh.js - 添加相关翻译键(v1.8.65);添加资源清理相关翻译键(v1.8.66)
- popup-en.js - 添加相关翻译键(v1.8.65);添加资源清理相关翻译键(v1.8.66)
- Code_Style_Guide.md - 添加Promise错误处理最佳实践指南(v1.8.65)
移除内容
- 未使用的分组规则代码(v1.8.62)
- Accept-Language 格式说明多余的无效代码(v1.8.62)
- 缓存测试卡片多余的js调试样式(v1.8.63)
- JavaScript中的内联样式设置(style.marginTop)(v1.8.63)
- 域名缓存测试中的冗余最终检查逻辑(v1.8.63)
- CSS中的!important声明和已废弃的word-break属性(v1.8.63)
- UI组件中的传统函数声明(function关键字)(v1.8.64)
- UI组件中的直接Chrome API调用(declarativeNetRequest、storage.local、runtime.getManifest)(v1.8.64)
- 架构违规的Service Worker独占性破坏代码(v1.8.64)
- 手动事件监听器清理代码 - 替换为统一的resourceTracker.cleanup()机制(v1.8.66)
- 分散的定时器管理逻辑 - 统一使用resourceTracker管理所有setTimeout调用(v1.8.66)
- 不安全的控制器abort操作 - 实现带错误处理的安全abort机制(v1.8.66)
What's Changed
- ver: update to v1.8.62 by @ChuwuYo in #27
- ver: update to v1.8.63 by @ChuwuYo in #28
- docs: Update.md update by @ChuwuYo in #29
- ver: update to v1.8.66 by @ChuwuYo in #30
Full Changelog: v1.8.60...v1.8.66
v1.8.60
v1.8.60(含迭代内容)
主要改动
1. 功能增强
- ✅ 调试功能新增拓展权限诊断,优化代码(v1.8.53)
- ✅ 调整更新检查策略(v1.8.54)
- ✅ 添加基础国际化类的必需参数验证,完善错误处理(v1.8.57)
- ✅ 改进语言选项函数的参数验证,完善类型检查(v1.8.57)
- ✅ 改进基础国际化类的占位符替换实现(v1.8.57)
- ✅ 统一错误处理模式,重构更新检查器错误分类逻辑(v1.8.58)
- ✅ 简化重试逻辑实现,优化更新检查器错误增强和重试决策机制(v1.8.58)
- ✅ 修复重试配置不一致问题,统一可重试错误类型定义(v1.8.58)
- ✅ 优化错误处理性能,消除重复调用 handleApiError 的问题(v1.8.58)
- ✅ 重构域名匹配算法,支持缓存与预加载机制,增强匹配通用性(v1.8.59)
- ✅ 完善域名匹配算法相关翻译键(v1.8.59)
- ✅ 修改英文用户语言代码默认值,en→en-us(v1.8.60)
2. 代码优化
- ✅ 重构popup代码结构,优化代码符合项目规范(v1.8.54)
- ✅ 重构共享工具库代码结构,优化代码符合项目规范(v1.8.55)
- ✅ 重构共享操作函数模块代码结构,优化代码符合项目规范(v1.8.55)
- ✅ 简化共享操作函数模块错误处理,消除重复日志记录(v1.8.56)
- ✅ 优化共享语言选项代码,符合项目规范(v1.8.57)
- ✅ 优化更新检查器fallback函数代码,符合项目规范(v1.8.57)
- ✅ 优化popup获取当前语言的函数,拆分职责,符合项目规范(v1.8.60)
- ✅ 清理toggle.css遗留样式代码
文件变更清单
新增文件
- Wiki.md - 项目Wiki(v1.8.55)
- Domain_Optimization_Guide.md - 域名匹配算法优化指南(v1.8.59)
重命名文件
- Domain_Optimization_Guide.md → Domain_Matching_Guide.md - 从优化文档到通用方法文档(v1.8.60)
修改文件
- Update.md - 更新文档内容更新(v1.8.53、v1.8.54、v1.8.55、v1.8.56、v1.8.57、v1.8.58、v1.8.59、v1.8.60)
- TODO.md - 待办更新(v1.8.55、v1.8.57、v1.8.58、v1.8.59)
- Project_Structure.md - 项目结构文档更新(v1.8.55、v1.8.59、v1.8.60)
- Code_Style_Guide.md - 代码风格指南更新(v1.8.57、v1.8.58、v1.8.59、v1.8.60)
- Wiki.md - 新建项目Wiki(v1.8.55);更新文档(v1.8.58、v1.8.59、v1.8.60)
- Domain_Matching_Guide.md - 新增域名匹配算法优化指南(v1.8.59);从优化文档到通用方法文档(v1.8.60)
- I18n_Usage_Guide.md - 更新内容与项目匹配(v1.8.59)
- manifest.json - 版本号更新(v1.8.53、v1.8.54、v1.8.55、v1.8.56、v1.8.57、v1.8.58、v1.8.59、v1.8.60);增加512*512图标引用(v1.8.55)
- debug-ui.js - 新增拓展权限诊断信息,移除残留的静态规则检查,应用可选链操作符优化代码(v1.8.53)
- debug-en.js、debug-zh.js - 清理未使用的静态规则集相关翻译键(v1.8.53)
- popup.js - 重构代码结构,符合项目规范(v1.8.54);拆分功能函数,优化代码符合规范(v1.8.60)
- shared-update-checker.js - 调整更新检查缓存时间与基础延迟(v1.8.54);优化fallback函数代码(v1.8.57);重构错误处理逻辑,统一错误分类模式;简化重试逻辑实现,优化错误增强和重试决策机制;修复重试配置不一致问题,统一可重试错误类型定义;优化错误处理性能,消除重复调用 handleApiError 的问题(v1.8.58)
- shared-utils.js - 重构代码结构,符合项目规范(v1.8.55)
- shared-actions.js - 重构代码结构,符合项目规范(v1.8.55);简化错误处理,消除重复日志记录(v1.8.56)
- shared-i18n-base.js - 添加基础国际化类的必需参数验证,完善错误处理;改进占位符替换实现,使用更安全的split/join方式(v1.8.57)
- shared-language-options.js - 优化代码,符合项目规范;改进参数验证,完善类型检查(v1.8.57)
- domain-rules-manager.js - 重构域名匹配算法,添加多层缓存机制和规则预处理,增强匹配通用性(v1.8.59)
- domain-manager-zh.js、domain-manager-en.js - 完善域名匹配算法相关翻译键(v1.8.59)
- background.js - 修改英文用户默认值,en→en-us(v1.8.60)
- toggle.css - 清理遗留样式代码(v1.8.60)
移除内容
- i18n翻译中未使用的翻译键(v1.8.53)
- 调试权限诊断信息残留的静态规则检查(v1.8.55)
- 过时的文档内容(v1.8.59)
- 测试内容(v1.8.59)
- toggle.css遗留的无用样式代码(v1.8.60)
What's Changed
- feat: 新增拓展权限诊断信息,移除残留的静态规则检查 by @ChuwuYo in #21
- ver: update to v1.8.55 by @ChuwuYo in #22
- ver: update to v1.8.57 by @ChuwuYo in #23
- ver: update to v1.8.58 by @ChuwuYo in #24
- ver: update to v1.8.59 by @ChuwuYo in #25
- ver: update to v1.8.60 by @ChuwuYo in #26
Full Changelog: v1.8.52...v1.8.60
v1.8.52
v1.8.52(含迭代内容)
主要改动
1. 功能增强
- ✅ 完善HTML相关i18n的错误处理,增加回退机制(v1.8.27)
- ✅ 优化HTML相关i18n实现,均在页面加载前检测用户语言并加载相应的语言文件(v1.8.27)
- ✅ 重构domain-manager-i18n.js,优化翻译加载逻辑,增加回退机制(v1.8.29)
- ✅ 重构background-i18n.js,优化翻译加载逻辑,增强错误处理(v1.8.29)
- ✅ 完善自定义 Accept-Language 格式验证逻辑,增加用户友好的提醒功能(v1.8.30)
- ✅ 增强调试页面自定义 Accept-Language 的格式检查与国际化的提醒(v1.8.30)
- ✅ 新增统一的 fallback 系统作为回退机制(v1.8.31)
- ✅ 使用通用 fallback 系统,避免依赖异步加载的 debugI18n(v1.8.31)
- ✅ 使用fallback处理更新检查器消息的翻译(v1.8.31)
- ✅ 重构所有i18n类文件,减少代码重复和深层嵌套(v1.8.40)
- ✅ 提取BaseI18n基础国际化类,统一所有i18n组件的继承结构(v1.8.50)
- ✅ 添加防重复声明机制,修复翻译文件加载冲突问题(v1.8.50)
- ✅ 修复调试页面诊断信息,移除误导性的"未找到 declarativeNetRequest 配置"提示(v1.8.52)
2. 代码优化
- ✅ 优化HTML的i18n结构,不包含任何硬编码文本,使用 ID 属性标识需要国际化的元素(v1.8.27)
- ✅ 将test-headers相关文件重命名为detect,统一命名规范(v1.8.28)
- ✅ 更新所有相关引用,包括HTML、JavaScript和文档(v1.8.28)
- ✅ 优化i18n类名和变量名,从TestI18n改为DetectI18n(v1.8.28)
- ✅ 添加字体预加载(v1.8.30)
- ✅ 改进Fallback方法(v1.8.31)
- ✅ 优化语言选项表生成的缓存机制(v1.8.31)
- ✅ 提取单一职责的工具方法(v1.8.50)
- ✅ 统一Service Worker和浏览器环境的翻译加载逻辑(v1.8.50)
- ✅ 统一多个核心文件代码风格,应用项目标准和现代JavaScript最佳实践(v1.8.52)
3. 文档完善
- ✅ TODO 更新(v1.8.27、v1.8.28)
- ✅ 更新项目结构文档(v1.8.27、v1.8.28、v1.8.50)
- ✅ README 内容与引用图片同步更新(v1.8.27、v1.8.28)
- ✅ Update 更新文档内容更新(v1.8.27、v1.8.28、v1.8.29、v1.8.30、v1.8.31、v1.8.40、v1.8.50、v1.8.51、v1.8.52)
- ✅ 添加国际化系统使用指南文档(v1.8.50)
- ✅ 添加代码风格指南文档(v1.8.52)
文件变更清单
新增文件
- Update.md - 版本更新文档(v1.8.27)
- shared/shared-i18n-base.js - 基础国际化类,提供通用翻译功能(v1.8.50)
- docs/I18n_Usage_Guide.md - 国际化系统使用指南文档(v1.8.50)
- docs/Code_Style_Guide.md - 代码风格指南文档(v1.8.52)
重命名文件
- test-headers.html → detect.html - 检测页面HTML(v1.8.28)
- test-headers.js → detect.js - 检测页面JavaScript(v1.8.28)
- i18n/test-en.js → i18n/detect-en.js - 检测页面英文翻译(v1.8.28)
- i18n/test-i18n.js → i18n/detect-i18n.js - 检测页面国际化配置(v1.8.28)
- i18n/test-zh.js → i18n/detect-zh.js - 检测页面中文翻译(v1.8.28)
修改文件
- README.md、README_EN.md - 内容与引用图片同步更新(v1.8.27、v1.8.28)
- manifest.json - 版本号更新(v1.8.27、v1.8.28、v1.8.29、v1.8.30、v1.8.31、v1.8.40、v1.8.50、v1.8.51、v1.8.52)
- docs/TODO.md - 更新任务完成状态(v1.8.27、v1.8.28、v1.8.30、v1.8.40)
- Project_Structure.md - 项目结构更新(v1.8.27、v1.8.28、v1.8.51)
- Update.md - 更新文档内容更新(v1.8.27、v1.8.28、v1.8.29)
- /images - icons更新(v1.8.27、v1.8.51)
- detect.html - 更新脚本引用路径(v1.8.28)
- detect.js - 更新i18n对象引用(testI18n → detectI18n)(v1.8.28),统一代码风格,转换所有函数为箭头函数,优化浏览器检测和指纹识别功能(v1.8.52)
- i18n/detect-i18n.js - 更新类名和变量名(TestI18n → DetectI18n)(v1.8.28)
- i18n/detect-en.js - 更新变量名(testEn → detectEn)(v1.8.28)
- i18n/detect-zh.js - 更新变量名(testZh → detectZh)(v1.8.28)
- popup.html - 更新检测页面链接(v1.8.28)
- i18n/popup-en.js、popup-zh.js - 调整翻译,删除重复键(v1.8.28)
- i18n/domain-manager-i18n.js、i18n/background-i18n.js - 重构代码,优化翻译加载逻辑,增强错误处理(v1.8.29),引入统一的 fallback 系统(v1.8.31),重构为继承BaseI18n基础类(v1.8.50)
- debug-ui.js - 添加 Accept-Language 格式验证和用户友好提醒(v1.8.30),统一代码风格,转换为箭头函数和现代JavaScript语法,修复诊断信息显示逻辑,移除不必要的静态规则集检查(v1.8.52)
- debug-headers.js - 统一代码风格,转换为箭头函数,应用早期返回模式和模板字符串(v1.8.52)
- domain-rules-manager.js - 重大重构,拆分复杂方法为单一职责的私有方法,添加完整JSDoc注释,优化规则匹配逻辑(v1.8.52)
- toggle.js - 统一代码风格,将类方法转换为箭头函数,添加完整JSDoc注释,优化主题和语言切换功能(v1.8.52)
- i18n/debug-en.js、debug-zh.js - 添加格式验证相关翻译键(v1.8.30)
- i18n/background-en.js、background-zh.js - 添加更新检查器相关翻译(v1.8.30)
- shared/shared-update-checker.js - 国际化所有英文日志消息(v1.8.31)
- shared/shared-utils.js - 创建通用 fallback 翻译系统(v1.8.31)
- popup.html、debug.html、detect.html - 添加字体预加载优化(v1.8.31),更新脚本引入顺序,添加shared-i18n-base.js引用(v1.8.50)
- debug-i18n.js、detect-i18n.js、popup-i18n.js - 引入统一的 fallback 系统(v1.8.31),重构为继承BaseI18n基础类,简化代码结构(v1.8.50)
- shared/shared-language-options.js - 优化语言选项生成的缓存机制(v1.8.31),更新语言选项描述(v1.8.51)
- shared/shared-utils.js - 创建通用 fallback 翻译系统(v1.8.31),添加中文注释和统一代码风格(v1.8.40)
- background.js - 更新脚本导入顺序,添加shared-i18n-base.js引用(v1.8.50),统一代码风格,转换函数为箭头函数,移除未使用参数,优化事件监听器,重构消息处理器减少深层嵌套,提取单一职责的处理函数;修复硬编码的版本获取(v1.8.52)
- i18n/popup-en.js、popup-zh.js、debug-en.js、debug-zh.js、detect-en.js、detect-zh.js、background-en.js、background-zh.js、domain-manager-en.js、domain-manager-zh.js - 添加防重复声明机制,支持安全的多次加载(v1.8.50)
移除内容
- 以
test-headers命名的相关文件与引用(v1.8.28) - i18n类中未使用的辅助方法(v1.8.29)
What's Changed
- Update to v1.8.29 by @ChuwuYo in #16
- ver: update to v1.8.31 by @ChuwuYo in #17
- ver: update to v1.8.4 by @ChuwuYo in #18
- ver: update to v1.8.51 by @ChuwuYo in #19
- ver: update to v1.8.52 by @ChuwuYo in #20
- feat: 新增拓展权限诊断信息,移除残留的静态规则检查 by @ChuwuYo in #21
Full Changelog: v1.8.26...v1.8.52
v1.8.26
v1.8.26(含迭代内容)
1. 功能增强
- ✅ 实现更新检查机制,基于Github Release API (v1.8.20)
- ✅ 完善错误处理与日志发送系统 (v1.8.21)
- ✅ 优化i18n系统,支持参数替换功能 (v1.8.21)
- ✅ 修复Debug日志的i18n加载问题,确保正确显示翻译 (v1.8.21)
2. 用户体验优化
- ✅ 优化检查更新按钮样式,使用淡紫色调区分功能 (v1.8.21)
- ✅ 调整更新检查器的日志输出,减少不必要的技术细节 (v1.8.21)
- ✅ 优化按钮代码结构,提升交互体验 (v1.8.19)
- ✅ 重构错误处理,使用现代async/await最佳实践 (v1.8.21)
- ✅ 优化toggle.js的代码结构,提升主题切换功能 (v1.8.18)
3. 国际化支持更新
- ✅ 完善未添加/新增的i18n消息,优化加载流程 (v1.8.21)
- ✅ 修复Debug日志的i18n加载时序问题 (v1.8.21)
- ✅ 修正国际化语法问题 (v1.8.18)
- ✅ 规则测试脚本国际化 (v1.8.18)
4. 代码优化
- ✅ 优化popup和test页面的异步操作,使用Promise链式调用和async/await (v1.8.19)
- ✅ 优化共享工具函数,完善错误处理机制 (v1.8.18)
- ✅ 修复规则重复问题 (v1.8.18)
- ✅ 优化项目结构 (v1.8.19)
- ✅ 重构toggle.js,改进主题切换实现 (v1.8.18)
5. 文档完善
- ✅ 多次更新TODO文档 (v1.8.19, v1.8.20)
- ✅ 添加meta标签说明 (v1.8.18)
- ✅ 连续更新版本号至v1.8.21
文件变更清单
新增文件
- shared/shared-update-checker.js - 新增更新检查器模块
修改文件
- background.js - 优化错误处理,完善i18n支持
- debug-ui.js - 修复i18n加载问题,优化日志显示
- docs/TODO.md - 更新任务列表
- i18n/background-en.js - 添加新的英文翻译键
- i18n/background-i18n.js - 增强参数替换功能
- i18n/background-zh.js - 添加新的中文翻译键
- i18n/debug-i18n.js - 修复参数替换功能
- i18n/popup-en.js - 添加更新检查相关英文翻译
- i18n/popup-i18n.js - 增强参数替换功能
- i18n/popup-zh.js - 添加更新检查相关中文翻译
- manifest.json - 更新版本号至v1.8.21
- popup.js - 实现更新检查功能,优化异步操作,完善错误处理
- toggle.js - 优化代码结构,改进主题切换实现
主要功能变更详情
更新检查机制
- 实现基于Github Release API的版本检查
- 支持版本比较、缓存机制和错误重试
- 提供用户友好的更新通知界面
- 支持暗色主题适配
i18n系统增强
- 修复参数替换功能,支持动态内容插入
- 解决异步加载时序问题
- 完善所有组件的国际化支持
- 消除硬编码英文消息
错误处理优化
- 重构为现代async/await最佳实践
- 优化错误传播和处理机制
- 添加专门的错误处理函数
- 提供用户友好的错误提示
性能优化
- 实现DOM缓存机制
- 批量DOM更新减少重绘
- 防抖处理避免重复请求
- 优化日志输出减少不必要信息
主题切换优化
- 重构toggle.js的代码结构
- 改进主题切换实现
- 提升用户交互体验
v1.8.17
v1.8.16
v1.8.16(含迭代内容)
1. 功能增强
- ✅ 新增 Accept-Language 重置功能、popup重置按钮及国际化支持(v1.8.14)
- ✅ 提取 “重置 Accept-Language 请求” 为共享工具,集成至 debug 功能(v1.8.15)
- ✅ 优化规则更新逻辑,增加清理旧规则功能与错误处理(v1.8.15)
- ✅ 优化背景脚本语言获取逻辑,增加错误处理与日志记录(v1.8.13)
- ✅ 增强页面卸载时事件监听器移除的安全检查(v1.8.14)
- ✅ 优化存储操作错误处理与重置响应判断(v1.8.14)
2. 国际化支持更新
- ✅ 完善 popup 页面、ServiceWorker 和域名管理脚本的国际化支持(v1.8.13)
- ✅ 更新语言映射及语言选项配置,按常用度排序(v1.8.13、v1.8.15)
- ✅ 更新域名语言规则(v1.8.13)
- ✅ 更新 extension_description 及部分翻译表述(v1.8.13)
3. 代码优化
- ✅ 优化 popup 消息传递与状态同步,修复同步状态显示(v1.8.13)
- ✅ 重构弹窗事件处理,优化异步操作与警告弹窗(v1.8.14)
- ✅ 移除语言选择框失焦提示文案(v1.8.14)
- ✅ 增加请求头检测超时时间至 10 秒(v1.8.13)
- ✅ 用CSS滤镜实现主题按钮和重置按钮图标主题切换支持 (v1.8.16)
4. 文档完善
- ✅ TODO 更新(v1.8.13、v1.8.14)
- ✅ 更新项目结构文档(v1.8.13、v1.8.15)
- ✅ 添加.gitignore 文件及说明(v1.8.15)
- ✅ 连续更新版本号至 v1.8.13→v1.8.14→v1.8.15
- ✅ README 引用图片同步更新(v1.8.16)
文件变更清单
新增文件
- .gitignore - 版本控制忽略配置(v1.8.15)
shared-actions.js(承载 “重置 Accept-Language 请求” 功能,v1.8.15)
修改文件
- background.js - 优化语言获取逻辑、防抖机制及错误处理(v1.8.13、v1.8.14)
- popup.js - 修复同步状态显示、重构事件处理(v1.8.13、v1.8.14)
- debug 相关文件 - 集成重置功能、优化规则表格(v1.8.1、v1.8.15)
- Accept-Language 配置文件 - 更新映射规则与选项排序(v1.8.13、v1.8.15)
- 版本配置文件 - 三次更新版本号(v1.8.13→v1.8.14→v1.8.15)
- i18n相关文件 - 补充多语言支持文案(v1.8.13、v1.8.14)
- bootstrap.min.css - 更新至v5.3.7版本(v1.8.16)
移除内容
- 未使用的 handleAutoSwitch 函数(v1.8.1)
- 语言选择框失焦提示文案(v1.8.14)
- 旧版冗余的规则处理逻辑(v1.8.15 清理旧规则功能替代)
v1.8.1
v1.8.1
1. 消除重复代码
- ✅ 创建
shared-utils.js- 统一的工具函数 - ✅ 创建
shared-language-options.js- 共享的语言选项列表 - ✅ 移除各文件中重复的
sendDebugLog函数 - ✅ 移除重复的语言选项列表
2. 修复错误和冲突
- ✅ 修复
debug.html中错误的字体路径 (typefaces/→fonts/) - ✅ 移除未使用的
handleAutoSwitch函数 - ✅ 简化
popup.js中冗余的自动切换检查逻辑
3. 优化函数和逻辑
- ✅ 简化
detectBrowserLanguage函数 - ✅ 优化
sendBackgroundLog函数,复用共享的sendDebugLog - ✅ Debug域名映射规则表格设置固定列宽
4. 代码结构改进
- ✅ 统一错误处理机制
- ✅ 减少不必要的API调用
- ✅ 改进状态管理和同步
文件变更清单
新增文件
shared-utils.js- 共享工具函数shared-language-options.js- 共享语言选项
修改文件
background.js- 简化函数,优化防抖机制popup.js- 移除重复代码,使用共享函数popup.html- 引用共享文件,移除重复选项debug.html- 修复路径错误,引用共享文件debug-ui.js- 使用共享函数,域名映射规则表格设置固定列宽debug-headers.js- 移除重复函数
移除内容
- 重复的
sendDebugLog函数定义 (3处) - 重复的语言选项列表 (2处,共~100行)
- 未使用的
handleAutoSwitch函数 - 冗余的自动切换检查逻辑