Overview
Translates text in input fields while preserving formatting and images using on-device AI.
Translate text in input fields (input, textarea, contenteditable) on any website – right where you're typing, using Chrome's built-in on-device AI (Gemini Nano). The smart alternative to Input Translator, XTranslate, and DeepL: ✓ FORMATTING STAYS INTACT Bold, italic, lists, links & headings are never destroyed – only the plain text is translated. ✓ IMAGES STAY INTACT Embedded images in editors like Gmail, Yahoo mail ,Notion, or WordPress are never deleted or moved. ✓ 100% LOCAL PROCESSING No cloud, no server, no data transfer. Your text never leaves your computer. WHY THIS EXTENSION? Conventional translation extensions often run into two big problems when editing text in input fields: they either destroy carefully crafted formatting or delete embedded images entirely. This extension was built specifically to prevent that – a privacy-friendly, offline-capable alternative to tools like Input Translator, XTranslate, or DeepL. KEY ADVANTAGES - Full preservation of formatting & images (rich text): In modern editors like Gmail, Notion, WordPress, or Jira, the structure of your content stays completely untouched. Only the plain text nodes are translated – your formatting (bold, italic, links) and inserted images stay exactly where they are. - 100% privacy (no cloud transfer): Your written text and confidential data are never sent to servers on the internet. Translation runs entirely locally on your computer via Chrome's built-in AI. Ideal for both business and private texts. - Safety net against text loss: Before the selected original text is replaced by the translation, the extension automatically copies it to your clipboard. If a translation doesn't turn out the way you'd like, you can restore your original text at any time with Ctrl+V (or Cmd+V). HOW IT WORKS There are two ways to trigger a translation: 1) Hotkey (translates the selection) - Select text in an input field. - Press the configured hotkey (default: Alt + Q). - The selected original text is copied to the clipboard as a safety net. - The selection is replaced in place by the translation. 2) Text trigger (translates the whole field, optional) - Enable the text trigger on the options page and set a trigger sequence (default: tr#). - Type that sequence at the end of the field's content – no selection needed. - The trigger sequence is removed automatically. - The entire field content is copied to the clipboard as a safety net, then replaced by the translation. SETTINGS (Hotkey, Language Direction, Text Trigger) Go to chrome://extensions → Details on the extension → Extension options to open the options page. There you can configure: - Language direction: Source and target language, selectable independently (with a swap button ⇄), from a list of common languages. Default: English → Spanish. - Hotkey: Use "Record new" to set any combination of 2–3 keys (e.g. Alt + Q or Ctrl + Shift + T). At least one modifier (Ctrl, Alt, or Shift) is required so the hotkey doesn't collide with normal typing. - Text trigger: A toggle to enable/disable this feature, plus a text field for the trigger sequence (default tr#). When enabled, typing the sequence at the end of a field's content translates the entire field. Changes are saved via chrome.storage.sync and take effect immediately on all open pages (no need to reload the extension). If multiple Chrome profiles are synced via the same Google account, the settings apply there as well. REQUIREMENTS - Chrome Desktop (Windows/macOS/Linux), current version. - The Translator API must be available. The feature check runs automatically. If the API is still behind a flag in your Chrome version, enable it if needed at chrome://flags/#translation-api → Enabled, then restart Chrome. - Enough free disk space for the language model (first use per language pair downloads the model locally). Switching the language direction on the options page downloads the corresponding new model if needed. TECHNICAL BACKGROUND: RICH-TEXT BEHAVIOR (CONTENTEDITABLE) In rich-text editors (contenteditable, e.g. Gmail, CMS editors, Notion), the selection isn't bluntly replaced as plain text – it's processed intelligently: 1. The selected range is cloned as a DOM fragment. 2. Only the actual text nodes within it are translated individually. 3. Formatting elements (bold, italic, underline, styled spans, lists, headings, links) and embedded images stay completely unchanged. 4. The translated fragment is reinserted at the original location. For the text trigger, the same formatting-preserving mechanism is used, but applied to the entire field content instead of just the selection. Note on translation quality with complex formatting: Since each text node is translated individually (to protect formatting/images), sentences interrupted mid-word/mid-sentence by a formatting tag (e.g. "This is *very* important") may be translated somewhat less fluently than an unbroken sentence. For regular paragraphs, list items, and uninterrupted sentences, quality is excellent. For rich-text fields, the clipboard receives both the original formatting (text/html) and a plain-text fallback (text/plain). NOTES / LIMITATIONS - The hotkey only works when a supported field is focused and text within it is selected. Without a selection, a brief message appears in the bottom right. - The text trigger only fires when the trigger sequence is at the very end of the field's content (i.e. it was just typed) and requires a collapsed cursor (no active selection) right after it. - On first use, there may be a brief delay for the local model download (progress is shown as a toast). After that, translation is instant with no further delay. - Works in regular textarea/input fields (plain text only there) as well as in contenteditable areas with full formatting and image preservation. For React/Vue-controlled fields, the native value setter is used so the framework detects the change. - Permissions are kept deliberately minimal (clipboardWrite, no host_permissions), since everything runs locally in the content script.
0 out of 5No ratings
Details
- Version1.2.0
- UpdatedAugust 13, 2026
- Size45.1KiB
- LanguagesEnglish
- DeveloperWebsite
Email
wulfowitsch-chrome@yahoo.com - Non-traderThis developer has not identified itself as a trader. For consumers in the European Union, please note that consumer rights do not apply to contracts between you and this developer.
Privacy
This developer declares that your data is
- Not being sold to third parties, outside of the approved use cases
- Not being used or transferred for purposes that are unrelated to the item's core functionality
- Not being used or transferred to determine creditworthiness or for lending purposes