MultiLangSwitcher 是一个 Chromium 内核浏览器扩展,帮助用户快速切换浏览器发送的 Accept-Language
HTTP 请求头。用户也可以在调试工具页面自定义完整的 Accept - Language
字符串。
扩展利用高效的 chrome.declarativeNetRequest
API 来修改请求头,确保性能和隐私。
页面样式采用Bootstrap框架。
如果拓展自带的请求头检测报错或不返回结果,可以自行跳转到 浏览器检测 、 BrowserScan 、 header-echo 进行查看。
如果需要切换浏览器UA可以看一下这个项目:User-Agent Switcher and Manager
同时建议在浏览器语言设置如图设置,这样做可以混淆一些简单的 navigator.languages
检测。
这是自定义 Accept - Language
字符串的演示。
.com
, .cn
)和二级域名(如 com.cn
, co.jp
)。扩展会自动应用对应域名的语言设置,当没有匹配规则时使用英语(en
)。declarativeNetRequest
API,直接修改请求头,相比 WebRequest API 更加高效且不影响性能。/test-headers.html
页面,用于直观地验证 Accept-Language
头是否已成功更改,并检测浏览器暴露的 JavaScript 语言偏好 (navigator.language
, navigator.languages
)、国际化 API (Intl) 等信息。同时,还包含 WebRTC 本地 IP 泄露以及 Canvas、WebGL、AudioContext 等可能的浏览器指纹信息检测,帮助您了解和控制浏览器暴露的信息。/debug.html
页面,包含以下诊断和修复工具:
declarativeNetRequest
设置的动态规则详情,包括规则 ID、优先级、操作、条件,以及最近匹配到的规则信息(匹配的 URL、资源类型等)。Accept - Language
字符串:自定义语言偏好,输入完整的 Accept - Language
字符串并保存。目前仅支持从源代码安装。
为什么?因为谷歌开发者需要一张国际支付信用卡和5美元。
git clone https://github.com/ChuwuYo/MultiLangSwitcher.git
chrome://extensions/
/ edge://extensions/
并回车,进入扩展程序管理页面。manifest.json
: 定义扩展的基本信息、权限(包括 storage
用于存储设置,declarativeNetRequest
用于修改请求头,tabs
用于检测页面URL以实现按域名自动切换语言)和配置。popup.html
/ popup.js
: 实现扩展弹出界面和交互逻辑,包括手动语言切换和按域名自动切换的开关控制。background.js
: 作为 Service Worker 在后台运行,处理扩展生命周期事件(如安装、启动)、规则的初始化与应用、监听存储变化以及实现按域名自动切换语言的核心逻辑(包括解析域名、匹配规则、更新请求头)。包含 domainLanguageRules
对象用于定义域名与语言的映射关系。rules.json
: 包含静态规则的文件,本项目主要通过动态规则管理语言设置。test-headers.html
/ test-headers.js
: 用于测试浏览器语言和指纹信息的页面及其脚本。debug.html
/ debug-ui.js
/ debug-headers.js
: 实现调试页面及其功能,帮助诊断问题和查看扩展状态。images/
: 存放扩展图标文件。typefaces/
: 存放项目使用的字体文件。README.md
: 项目的中文说明文档。README_EN.md
: 项目的英文说明文档。