A powerful Chrome/Chromium browser extension that automatically translates web pages with customizable language settings and domain-based auto-translation.
- π One-click translation of any web page
- π Auto-translate specific domains automatically on page load
- π¨ Visual status indicators:
- Gray icon: Extension installed and ready
- Red icon: Foreign language detected
- Green icon: Page translated
- π Multiple languages supported (Korean, Japanese, Chinese, Spanish, French, German, and more)
- βοΈ Customizable settings for source and target languages
- π― Domain filtering - Specify exact domains (e.g.,
naver.com) or TLDs (e.g.,.kr,.jp) - β»οΈ Re-translation support - Click translate multiple times to handle dynamic content
- π Works on Chromium browsers - Chrome, Brave, Edge, and potentially Meta Quest browsers
Unlike Chrome's built-in translation that relies on page language attributes, this extension:
- Works on sites that don't set language attributes correctly
- Allows domain-based auto-translation regardless of detected language
- Provides full control over when and what to translate
- Supports re-translation for dynamically loaded content
-
Download this repository
git clone https://github.com/yourusername/auto-page-translator.git cd auto-page-translator -
Open Chrome Extensions page
- Chrome: Navigate to
chrome://extensions/ - Brave: Navigate to
brave://extensions/ - Edge: Navigate to
edge://extensions/
- Chrome: Navigate to
-
Enable Developer Mode
- Toggle the "Developer mode" switch in the top-right corner
-
Load the extension
- Click "Load unpacked"
- Select the extension folder
- The extension icon should appear in your toolbar
-
Pin the extension (recommended)
- Click the puzzle piece icon in your toolbar
- Find "Auto Page Translator"
- Click the pin icon to keep it visible
Once published to the Chrome Web Store, you'll be able to install directly from there.
- Navigate to any web page
- Click the extension icon in your toolbar
- Select source and target languages (defaults: Korean β English)
- Click "Translate Page"
- The icon will turn green when translation is complete
Enable automatic translation for specific domains:
- Click the extension icon
- Check "Always translate pages from:"
- Enter domains in the text field (examples below)
- Click "Save Settings"
Domain Format Examples:
- Full domains:
naver.com,sooplive.co.kr,yahoo.co.jp - Top-level domains:
.kr,.jp,.cn - Multiple domains:
naver.com, .kr, example.jp(comma-separated)
Now whenever you visit pages from those domains, they'll automatically translate on page load!
If a page loads new content after initial translation:
- Simply click "Translate Page" again
- The extension will find and translate any new text nodes
- Gray Icon π: Extension installed and ready
- Red Icon π΄: Foreign language detected on current page
- Green Icon π’: Page has been translated
- Korean (ko)
- Japanese (ja)
- Chinese Simplified (zh-CN)
- Chinese Traditional (zh-TW)
- Spanish (es)
- French (fr)
- German (de)
- Italian (it)
- Portuguese (pt)
- Russian (ru)
- Arabic (ar)
- Hindi (hi)
- English (en)
- Auto-detect (for source language)
The extension uses a dual-API approach for reliability:
- Google Translate API (primary) - Free, unofficial endpoint
- MyMemory API (fallback) - Free translation service
Text is translated in small batches to avoid rate limits and ensure reliability.
- background.js - Service worker that manages extension state, settings, and auto-translate logic
- content.js - Injected into web pages to perform translation and detect page language
- popup.html/js/css - User interface for settings and manual translation
- icons/ - Visual indicators for extension status
All settings are saved automatically via Chrome's sync storage:
- From Language: Source language for translation (default: Korean)
- To Language: Target language for translation (default: English)
- Auto-translate: Enable/disable automatic translation
- Domains: Comma-separated list of domains to auto-translate
- Refresh the page after installing the extension
- Check that the extension has permission to access all websites
- Reload the extension from
chrome://extensions/
- Wait a few seconds - translation takes time for large pages
- Check your internet connection (requires access to translation APIs)
- Open browser console (F12) to check for errors
- Look for
[Translator]prefixed log messages
- Verify domain format in settings (e.g.,
naver.comnothttps://naver.com) - Ensure "Always translate" checkbox is checked
- Click "Save Settings" after making changes
- Reload the page to trigger auto-translate
- Check browser console for
[Translator BG]messages
- Refresh the page after enabling the extension
- The extension detects page language from HTML
langattribute - For pages without proper language tags, use domain-based auto-translate instead
- storage: Save your language preferences and domain settings
- activeTab: Translate the current page
- scripting: Inject translation scripts into web pages
- tabs: Detect page language and manage translations
- host_permissions: Access any website for translation
- Translation requests are processed by Google Translate and MyMemory servers
- No personal data is collected or stored by this extension
- All settings are stored locally in Chrome's sync storage
- No analytics or tracking
- Translation quality depends on Google Translate and MyMemory APIs
- Some websites may block translation due to Content Security Policy restrictions
- Dynamic content loaded after translation may need manual re-translation
- Rate limits may apply for very large pages with many text nodes
- Meta Quest browser support is experimental
auto-page-translator/
βββ manifest.json # Extension configuration
βββ background.js # Service worker (manages state & auto-translate)
βββ content.js # Page script (handles translation)
βββ popup.html # Extension popup UI
βββ popup.css # Popup styling
βββ popup.js # Popup functionality
βββ icons/ # Extension icons (gray, red, green states)
β βββ icon-gray-*.png
β βββ icon-red-*.png
β βββ icon-green-*.png
βββ README.md # This file
βββ LICENSE # License file
- Edit the relevant files
- Go to
chrome://extensions/ - Click the refresh icon on the extension card
- Test your changes
The extension includes comprehensive console logging:
- Open DevTools (F12) β Console tab
- Look for messages prefixed with
[Translator](content script) or[Translator BG](background script) - These show translation progress, API calls, and any errors
Contributions are welcome! Please feel free to submit a Pull Request.
- Support for additional translation APIs
- Better handling of dynamic content (MutationObserver)
- Translation memory/caching to reduce API calls
- Keyboard shortcuts for quick translation
- Export/import settings
- Whitelist/blacklist specific elements from translation
- Translation history
- Chrome Native Translation Integration: Exploring ways to trigger Chrome's built-in translator programmatically
- Offline Translation: Local translation models for basic translations
- Context Menu: Right-click translation options
- Translation Memory: Cache translated content to improve speed
This project is licensed under the GNU Affero General Public License v3.0 - See LICENSE file for details.
Key points of AGPL-3.0:
- You can freely use, modify, and distribute this software
- If you modify and distribute this software, you must also distribute your source code
- If you run a modified version on a server and let others interact with it, you must make your modified source code available
- Any derivative works must also be licensed under AGPL-3.0
For full license text, see: https://www.gnu.org/licenses/agpl-3.0.en.html
- Built for translating Korean streaming content and websites without proper language tags
- Uses Google Translate's unofficial API endpoint
- MyMemory Translation API for fallback support
If you encounter issues:
- Check the browser console for error messages
- Open an issue on GitHub with details
- Include browser version and example URL if possible
- Initial release
- One-click manual translation
- Auto-translate for specific domains
- Visual status indicators (gray/red/green icons)
- Multi-language support
- Domain filtering with validation
- Re-translation support for dynamic content
- Dual API system (Google Translate + MyMemory)
Happy Translating! πβ¨
Made with β€οΈ for seamless web browsing across languages