A browser extension based on the "comprehensible input" theory to help you learn languages naturally while browsing the web.
English doc | 中文文档
We firmly believe that the best way to learn a language is through extensive exposure to "comprehensible input," the famous "i+1" theory. This means content should be slightly above your current level—challenging but not incomprehensible. This extension aims to turn the entire internet into your personalized language learning material by intelligently replacing selected words with their translations in your target language, allowing you to naturally improve your vocabulary and language intuition while immersed in reading.
🎯 Project Highlights: Features a complete pronunciation learning ecosystem with phonetic notation, AI-powered definitions, dual TTS support, and interactive tooltips for a comprehensive learning experience from vocabulary translation to pronunciation mastery.
📚 Complete Documentation: See Architecture & Features Guide for technical architecture, API reference, development guide, and troubleshooting.
This extension is built with Web Extension API and WXT, supporting the following browsers:
| Browser | Support Status | Notes |
|---|---|---|
| Chrome | ✅ Fully Supported | Recommended environment, all features available |
| Edge | ✅ Fully Supported | Chromium-based, full compatibility |
| Firefox | ✅ Supported | Core features normal, some TTS limitations |
| Safari | ⚠️ Partially Supported | Requires additional configuration, see below |
Note: Safari may require additional configuration steps, see Safari Extension Guide.
🎯 Complete Demo: One-stop immersive experience from smart translation to pronunciation learning
🌗 Theme Adaptation: Smart dark/light theme switching with modern visual experience
🧠 Smart Multi-language: AI automatic detection and translation for 20+ languages, covering mainstream learning languages including Chinese, English, Japanese, Korean, etc.
Immersive Language Learning Assistant ├── 🎯 Core Engine │ ├── Smart Text Processing System (TextProcessor) │ ├── AI Translation Service (ApiService) │ └── Caching & Performance Optimization ├── 🔊 Pronunciation Ecosystem ⭐ │ ├── Phonetic Retrieval (Dictionary API) │ ├── Speech Synthesis (Youdao TTS + Web Speech) │ ├── Interactive Tooltips (TooltipRenderer) │ └── AI Definition Explanations ├── 🎨 User Interface Layer │ ├── Vue 3 Popup Settings Interface │ ├── Dynamic Style Management (StyleManager) │ └── Responsive Tooltip System └── 🔧 Infrastructure ├── Cross-device Configuration Sync (StorageManager) ├── Extension Messaging System └── Cross-browser Compatibility Layer
. ├── .output/ # WXT build output directory ├── entrypoints/ # Extension entry points │ ├── background.ts # Background service (config validation, notification management) │ ├── content.ts # Content script (core translation logic) │ └── popup/ # Vue 3 popup interface │ ├── App.vue # Main interface component │ └── index.html # Popup page ├── src/modules/ # Core functional modules │ ├── pronunciation/ # 🔊 Pronunciation system module │ │ ├── phonetic/ # Phonetic retrieval services │ │ ├── tts/ # Speech synthesis services │ │ ├── translation/ # AI translation integration │ │ ├── services/ # Pronunciation service coordinator │ │ ├── ui/ # Tooltip UI components │ │ ├── utils/ # Utility function library │ │ └── types/ # Type definitions │ ├── apiService.ts # AI translation API service │ ├── textProcessor.ts # Smart text processor │ ├── textReplacer.ts # Text replacement engine │ ├── styleManager.ts # Style manager │ ├── storageManager.ts # Configuration storage management │ ├── languageManager.ts# Multi-language support │ ├── promptManager.ts # AI prompt management │ ├── messaging.ts # Messaging system │ └── types.ts # Core type definitions ├── public/ # Static resources │ ├── icon/ # Extension icons (16-128px) │ └── warning.png # Notification icon ├── docs/ # 📚 Project documentation │ └── ARCHITECTURE_AND_FEATURES.md # Detailed technical documentation ├── .env.example # Environment variable template ├── wxt.config.ts # WXT framework configuration └── package.json # Project dependency configuration
📖 Detailed Documentation: Architecture & Features Guide - Contains complete technical architecture, API reference, and development guide
Clone the repository:
git clone https://github.com/xiao-zaiyi/illa-helper.git
cd illa-helper
Install dependencies:
npm install
Tip: If you just want to use this extension without participating in development, please go directly to the Releases page to download the latest packaged version.
The project manages local development environment configuration through .env files.
Create .env file:
Copy the .env.example file to create your own local configuration file.
cp .env.example .env
Edit configuration:
Open the newly created .env file. At minimum, you need to provide a valid API Key for the translation function to work properly.
VITE_WXT_DEFAULT_API_KEY="sk-your-real-api-key" # You can also override other default settings here VITE_WXT_DEFAULT_API_ENDPOINT="https://xxxxx/api/v1/chat/completions" VITE_WXT_DEFAULT_MODEL="gpt-4" VITE_WXT_DEFAULT_TEMPERATURE="0.2"
Note: The
.envfile has been added to.gitignore, so your keys won't be accidentally committed.
Execute the following commands, WXT will start the development server and package the extension for you.
npm run build npm run zip
chrome://extensions or edge://extensions)..output/chrome-mv3/illa-helper-xx.zip in the project root directory (or the corresponding folder for your browser).This extension uses AI technology for intelligent text translation, which requires an API service. You can use OpenAI's API key or any third-party service that's compatible with OpenAI's API format.
Our pronunciation system is a core feature providing a complete learning experience:
Smart multi-language mode is our new feature, easy to use:
No. This extension processes all webpage content locally and only sends text fragments that need translation to your configured API service. Pronunciation data is also cached locally to protect your privacy.
Yes. The extension provides precise translation control:
Safari requires additional steps to package Web Extensions as Safari extensions. Please refer to Apple's developer documentation.
We welcome contributions of all kinds! Whether reporting bugs, suggesting new features, or directly contributing code.
Submit Issues
Contribute Code
git checkout -b feature/your-amazing-feature)git commit -m 'Add some amazing feature')git push origin feature/your-amazing-feature)Improve Documentation
📖 Detailed Development Guide: See Architecture & Features Guide for complete development environment setup, code structure explanations, and best practices.
This project is open-sourced under the MIT License. You are free to use, modify, and distribute this code, including for commercial purposes.