Skip to content

Releases: ChuwuYo/MultiLangSwitcher

v1.9.7

23 Nov 07:30
8bf6efd

Choose a tag to compare

What's Changed

Full Changelog: v1.8.83...v1.9.7

v1.8.83

25 Sep 06:52
1511a5b

Choose a tag to compare

v1.8.83(含迭代内容)

主要改动

1. 功能增强

  • ✅ 菜单功能完善 - 添加浏览器拓展右键菜单
  • ✅ 重构 Service Worker 初始化逻辑:
    • 统一初始化入口:创建了单一的 initialize 函数,用于处理扩展安装、浏览器启动和 Service Worker 意外重启时的状态恢复,确保了逻辑的一致性
    • 实现懒加载守卫:引入 ensureInitialized 机制,在处理 onMessageonUpdated 等事件前检查并确保初始化已完成,防止因 Service Worker 休眠后重启导致的状态丢失问题
  • ✅ 修复并发与竞态问题:
    • 引入互斥机制:为 updateHeaderRules 添加 Promise 队列,确保规则更新操作串行执行,避免并发调用导致的状态不一致
    • 防抖合并请求:实现短时间内相同语言切换请求的自动合并,减少不必要的API调用和日志
    • 优化缓存策略:改进 rulesCache 机制,自动切换也能安全使用短路返回,因为规则仅由本扩展管理
    • 状态同步增强:确保 lastAppliedLanguagerulesCache 在并发场景下的一致性
  • ✅ 性能优化 - 修复自动切换时的无效更新与性能浪费问题,通过改进缓存检查逻辑避免不必要的 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 / 已修复的问题
  • performInitializationhandleAutoSwitchToggleRequest 中的重复规则应用逻辑提取到新的共享函数 applyLanguageRulesBasedOnState
  • 移除大量prromise包装

What's Changed

Full Changelog: v1.8.66...v1.8.83

v1.8.66

12 Aug 17:33
ed4a1d1

Choose a tag to compare

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

Full Changelog: v1.8.60...v1.8.66

v1.8.60

06 Aug 13:57
745722d

Choose a tag to compare

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

Full Changelog: v1.8.52...v1.8.60

v1.8.52

28 Jul 12:34
b2830a6

Choose a tag to compare

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

Full Changelog: v1.8.26...v1.8.52

v1.8.26

22 Jul 11:04

Choose a tag to compare

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

21 Jul 07:00

Choose a tag to compare

v1.8.17

1. 大量代码结构优化

2. 完善错误处理

3. 修正一些语法问题

4. 重构快速检查功能的状态更新机制

v1.8.16

10 Jul 10:07

Choose a tag to compare

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

06 Jul 17:01
9c681c0

Choose a tag to compare

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 函数
  • 冗余的自动切换检查逻辑

v1.8.0

02 Jul 07:01

Choose a tag to compare

  1. 初步实现i18n国际化支持
  2. 修复一些问题

  1. Initially implement i18n internationalization support
  2. Fix some issues