# 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
MultiLangSwitcher Icon

MultiLangSwitcher

English | 简体中文
---
Ask DeepWiki zread
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)
CN_Light EN_Dark
--- 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).
Suggestion
This is a demonstration of customizing the `Accept-Language` string.
Custom Accept-Language
***
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)
Contributors
***
License
***
[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2FChuwuYo%2FMultiLangSwitcher.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2FChuwuYo%2FMultiLangSwitcher?ref=badge_large)