Skip to content

ixrock/XTranslate

Repository files navigation

XTranslate

Chrome-extension for translating foreign languages at the viewing web page context. Translate from 100+ foreign languages to your native directly on web-site you're reading or insert text in the action window (via extension's icon on chrome's toolbar).

Screenshot

Features:

  1. Many ways to get translation from texts within web page:
  • double-click on the word

Select text and get translation right after one of the following actions:

  • press hotkey defined in extension settings (Alt + Shift + X by default)
  • click on the XTranslate icon appeared near selected text
  • release mouse button after selecting a text (this option is turned off by default)
  • write text in the input fields, mouse-over it and press hotkey
  • open extension's window while text selected to get translation

You can get even some translation from images by mouse overing the image element and press hotkey (title or alt attributes will be used when applicable). With this feature it is possible to get auto-translation by block of text at the page just by pressing the hotkey when mouse over it!

  1. Translate texts in PDF files (powered by pdf.js).

In order to work with local files (e.g. file://path/to/file.pdf) you must allow access for the extension:

  • open extensions page chrome://extensions/, find XTranslate and click (Details) button
  • enable checkbox "Allow access to file URLs"
  1. Listen text-to-speech (TTS) for all supported translation vendors

  2. Create your unique design (theme) for the popup with translation results

  3. Customize ways of getting translation and other options in app's settings

  4. Type any text in the app's action window and get translation with dictionary support for single words

  5. Save your favorite language pairs (from -> to) as bookmarks for quick access (Cmd/Alt + Shift + click at the language list item to save and keep on top)

  6. History of translations (turned off by default)

Install extension:

Available translation vendors:

Steps for access OpenAI translations:

  1. Sign up if not yet registered or go to OpenAI platform settings
  2. Create api access key to get access for OpenAI translation service results
  3. Top-up your balance (5$+) and disable credit card's auto-top-up balance at billing page (recommended)
  4. Don't forget to adjust limits settings (recommended)

Security considerations:

  • OpenAI api key handled via extension-scoped chrome.storage.local apis and used only within Authorization header to sign OpenAI API requests (which is not exposed or tracked, even if webRequest API enabled in some other malicious extension, see excluded list of headers)
  • OpenAI requests goes through official openai NPM-package and running only within background service-worker ({dangerouslyAllowBrowser: false})
  • Don't enter or share your OpenAI key anywhere else except extension's settings page (options page)

For developers and contributors:

Install globals (prerequisites):

  1. node.js (v.20+)
  2. npm install (from project root folder)

Steps to build (compile) extension:

  1. npm run build
  2. use /dist folder as extension's build source with own manifest.json

Other commands to dev and test:

  1. npm run dev - runs project in dev/watch mode
  2. npm run test - runs available jest tests

Powered by typescript, react, mobx, webpack, sass, lodash and some others. Made with ♥