# MultiLangSwitcher
**Repository Path**: hl0071/MultiLangSwitcher
## Basic Information
- **Project Name**: MultiLangSwitcher
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: AGPL-3.0
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-03-11
- **Last Updated**: 2026-03-11
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
---
Project Overview
---
MultiLangSwitcher is a Chromium-based browser extension that helps users quickly switch the `Accept-Language` HTTP request header sent by the browser. Users can also customize the full `Accept-Language` string on the debugging tools page.
The extension utilizes the `chrome.declarativeNetRequest` API to modify the request header, ensuring performance and privacy.
### Note: This extension is not suitable for websites that determine language based on IP address.
The website's layout and styling are built with Bootstrap.
If the built-in request header detection fails or returns no results, you can manually navigate to [BrowserScan](https://www.browserscan.net) or [header-echo](https://header-echo.addr.tools/) for further verification.
If you need to switch the browser UA, you can take a look at this project: [User-Agent Switcher and Manager](https://github.com/ray-lothian/UserAgent-Switcher)
---
Additionally, you can configure browser language settings as shown to confuse simple `navigator.languages` detection (though this will increase the uniqueness of your browser fingerprint).
This is a demonstration of customizing the `Accept-Language` string.
***
Features
***
* **Language Request Header Switching**: Popup interface for selecting languages and modifying `Accept-Language` request headers
* **Domain-Based Auto-Switching**: Automatically applies corresponding language settings based on visited domains
- Supports top-level domains (e.g., `.cn`, `.jp`) and second-level domains (e.g., `com.cn`, `co.jp`)
- Built-in domain rules covering major countries and regions
- Defaults to English for unmatched domains
* **Persistent Settings**: Language preferences and auto-switch status saved to local storage
* **Efficient Header Modification**: Uses `chrome.declarativeNetRequest` API for better performance than the WebRequest API
* **Background Auto-Application**: Extension automatically loads settings on startup with error retry mechanism
* **Theme Switching**: Support for light/dark theme switching
* **Update Checker**: Automatically checks GitHub Releases for the latest version information
* **Reset Function**: One-click reset of the Accept-Language request header
* **Detection Page**: `detect.html` for verifying request header modifications, which detects:
- `Accept-Language` request headers
- JavaScript language preferences (`navigator.language`, `navigator.languages`)
- Internationalization API (Intl) information
- WebRTC local IP leakage
- Canvas, WebGL, and AudioContext fingerprinting information
- AI Diagnosis panel with OpenAI-compatible providers, multi-turn chat, per-provider local config, Markdown export, and message copy actions
* **Debugging Tools**: `debug.html` provides debugging and diagnostic features, including:
- View `declarativeNetRequest` dynamic rule details
- Multi-endpoint request header testing
- Custom `Accept-Language` strings (e.g., `en-US,en;q=0.9,zh-CN;q=0.8`)
- Real-time log display with category filtering
- Rule priority fixes and rule rebuilding
- Extension diagnostic information (version, permissions, configuration, storage status)
- Domain-language mapping rules viewer
- Reset Accept-Language request header
***
Installation Guide
***
### Install from Chrome Web Store / Microsoft Edge Extensions Home (Not Published)
Currently, only installation from source code is supported.
Note: This extension has not been published to the Chrome Web Store due to the developer not registering a Google developer account.
### Install from Source Code
1. **Download or Clone the Code**: Clone the project repository to your local computer (Or download the ZIP from the release and unzip it)
```bash
git clone https://github.com/ChuwuYo/MultiLangSwitcher.git
```
2. **Open Browser Extensions Management**: Enter `chrome://extensions/` / `edge://extensions/` in the Chrome browser address bar and press Enter to go to the Extensions management page.
3. **Enable Developer Mode**: Turn on the "Developer mode" switch in the top right corner of the page.
4. **Load Unpacked Extension**: Click the "Load unpacked" button in the top left corner of the page and select the MultiLangSwitcher project folder you downloaded.
5. **Complete**: The extension will be successfully added to the browser, and you can start using it.
***
Usage
***
1. **Open the Extension Popup**: Click the MultiLangSwitcher extension icon in the browser toolbar.
2. **Select Preferred Language**: In the popup dropdown menu, select the language you want the browser to simulate.
3. **Apply Settings**: Click the "Apply Changes" button at the bottom of the interface. Your settings will be saved and immediately applied to new network requests.
4. **Verification and Debugging**: Click the "Detection Page" or "Debugging Tools" links provided in the popup to verify if the language settings are effective, or to diagnose issues when they occur.
### AI Diagnosis Notes
The `detect.html` page now includes an AI diagnosis panel. It sends the current structured detection snapshot to an OpenAI-compatible model and turns the raw data into user-friendly explanations.
Current implementation notes:
* Querying an external AI provider sends a structured detection snapshot to that provider. This can include fingerprint-related signals such as language settings, locale and timezone data, partial browser fingerprint fields, and redacted WebRTC or header-derived context. Treat AI diagnosis as third-party data sharing and only use providers you trust.
* AI configuration is stored locally in `chrome.storage.local`, grouped by provider
* Replies follow the current detect page language by default
* Exported Markdown only contains visible conversation, excluding the hidden system prompt and hidden initial detection snapshot injection messages
***
Thanks to Contributors (Welcome to Submit PRs)
***
License
***
[](https://app.fossa.com/projects/git%2Bgithub.com%2FChuwuYo%2FMultiLangSwitcher?ref=badge_large)