Linguist

linguister.io
Linguist

Linguist is a privacy‑focused translation solution in-browser that has an embedded offline translator and lets users create custom translators to use any translation API, even if it's locally deployed. Full-page translation, selected text translation, dictionary, history, and other features you may expect of a full-featured translation solution in-browser. Download: Chrome / Firefox

Open Source

Linguist Source Code

Author

translate-tools

Description

Translate web pages, highlighted text, Netflix subtitles, private messages, speak the translated text, and save important translations to your personal dictionary to learn words even offline

#addon#browser-extension#chrome#chrome-extension#dictionary#firefox#firefox-addon#firefox-extension#foss#language-learning#languages#machine-translation#offline-translator#oss#plugable#productivity#translate#translation#translator#webextension

Homepage

https://linguister.io

License

BSD-3-Clause

Created

20 Jun 21

Last Updated

08 Jun 26

Latest version

v7.0.5

Primary Language

TypeScript

Size

24,086 KB

Stars

999

Forks

48

Watchers

999

Language Usage

Language Usage

Star History

Star History

Recent Commits

  • Robert Vitonsky (07 Jun 26)

    docs: screenshots is missing in readme (#610) * docs: fix screenshots * docs: update readme

  • Robert Vitonsky (07 Jun 26)

    docs: update the docs (#609) * docs: update offline translation instruction * refactor: organize the docs * docs: update custom module details * chore: update logo size * fix: use link on docs * docs: improve instruction * docs: proofread the docs * docs: improve consistency

  • Robert Vitonsky (22 Mar 26)

    7.0.5 (#601)

  • Robert Vitonsky (22 Mar 26)

    fix: YandexTranslator does not work (#600)

  • Robert Vitonsky (11 Mar 26)

    chore: add more locales (#597) * feat: add localizations * chore: improve mobile layout * feat: add more languages * chore: add locales cache into git * fix: use large image card

  • Robert Vitonsky (11 Mar 26)

    feat: update site (#596) * refactor: create pages for specific languages * feat: add links to alt languages * chore: update source text * chore: watch localization files for changes * chore: allow wbr tag * style: improve landing style * feat: improve tagline and title * fix: use correct tags * feat: invert direction of every 2nd feature row * feat: improve landing texts * chore: delete locale files * chore: update docusaurus config * chore: add sitemap * feat: build alt links via site origin * feat: add alt versions meta tags * feat: add faq section * chore: improve why Linguist section * chore: mention both built-in translators and extensions * chore: mention a paywalls * chore: mention ridiculous cases * chore: sort faq * feat: explain the logo * feat: update logo * feat: localize text via transmart * chore: tune landing texts * chore: add images translation section * chore: update words * chore: run docker via user from .env * chore: translate via qwen/qwen3.5-35b-a3b * chore: use google/gemini-3.1-pro-preview * fix: use lang attribute on html * chore: translate locales * fix: layout * fix: proper alt urls generation * feat: update analytics * feat: track FAQ clicks * feat: track reading engagement * feat: add engagement time for all events * feat: add alt texts * chore: use ga4 package * fix: hydration error The Link component passed to a Trans generates `style` tag. The style tag is not allowed inside `p`, so browser tried to fix that. In result we have hydration error. To fix that problem, we wrap Trans component via `div`. * chore: tune texts * chore: add content scheme * refactor: move images into landing dir

  • Hamir Mahal (26 Jan 26)

    ci: use node v20 (#521) * chore: changes from formatting on save * fix: usage of `node12 which is deprecated`

  • Ivan Kalashnikov (20 Oct 25)

    fix: update Russian localization for consistency and clarity (#590)

  • Robert Vitonsky (05 Sept 25)

    Blog post: custom translators (#587) * chore: add blog post about custom translators * chore: update email in authors list * chore: move blog post * chore: proofread post

  • Robert Vitonsky (28 Aug 25)

    fix: default translator does not work if network blink while token fetching (#586) * fix: update translators package * 7.0.4 * docs: update build instructions

  • Robert Vitonsky (30 Jul 25)

    Release 7.0.3 (#582)

  • Robert Vitonsky (30 Jul 25)

    fix: throw error immediately for unsupported langauge codes (#581)

  • Robert Vitonsky (30 Jul 25)

    fix: Uncaught Error when automatically translating new content (#580)

  • Robert Vitonsky (30 Jul 25)

    fix: Offline translation does not work in new version (#579)

  • Robert Vitonsky (25 Jul 25)

    fix: Incorrect coordinates for floating button (#570) * fix: consider scroll * 7.0.2

  • Robert Vitonsky (25 Jul 25)

    Update logo for site (#572) * chore: update gitignore file * chore: update favicon * chore: remove unused icon * chore: add script to compile favicon

  • Robert Vitonsky (23 Jul 25)

    Release version 7.0.1 (#568) * 7.0.0 * fix: a MicrosoftTranslator token lifetime Original issue: https://github.com/translate-tools/core/pull/129 * 7.0.1

  • Robert Vitonsky (23 Jul 25)

    395 context menu item translate page is sometimes not displayed (#567) # Problem We have single context menu for all tabs and dynamically update it when user toggle/refresh tab. While this update we fetch content script for state of page translation and sometimes it happens too quickly, so content script is not ready to response for requests. This lead us to an exception and `catch` block is hide context menu in result. # How this change fixes it Implemented retries mechanism for query content script. Now background script can wait response (with reasonable deadline time). --- * fix(#395): wait response of content script * chore: update debug print

  • Robert Vitonsky (23 Jul 25)

    Merge pull request #566 from translate-tools/549-injected-contentscript-div-may-affect-page-content Injected contentscript div may affect page content

  • Robert Vitonsky (23 Jul 25)

    fix(#529): use relative coordinates to a root node

  • Robert Vitonsky (23 Jul 25)

    fix: render container out of layout flow

  • Robert Vitonsky (22 Jul 25)

    docs: update images paths in readme (#565)

  • Robert Vitonsky (22 Jul 25)

    Update packages (#561) - Updated translators package. Now we use latest version of `anylang` - Added translator `MicrosoftTranslator` and set as default translator - Eslint is updated and code is formatted. Now we use latest eslint with a flat config. Created issue #564 to fix a new found problems - Site is moved to a `packages` directory and all packages is updated - All unnecessary packages is deleted - Permissions is granted to a workflow files --- * chore: update package with translators * feat: add Microsoft translator and make it default * test: update snapshots * chore: update dev packages * chore: update test deps * chore: update eslint * chore: update stylelint config * chore: temporary disable eslint rules with conflicts * chore: add lint script * ci: run linter * chore: prettify code * chore: organize eslint config * refactor: move docs site to packages directory * chore: update linters * ci: update site build job * test: exclude node modules in nested dirs * ci: update hooks and permissions * fix: webpack build Compile only files that is needed for build * ci: trigger only by push in master * chore: run audit fix * chore: update translators package for site * chore: remove google-tts-api * chore: update plausible package

  • Robert Vitonsky (15 Jul 25)

    Merge pull request #557 from translate-tools/555-review-locale-files Closes #555 # Key changes - Removed localized languages names with prefix `langCode_`. Now used `Intl` API - Updated some locales keys - Texts in source locale is updated with proofreading. Unused keys is removed - All exists languages is synchronized with source locale with use LLM (`openai/gpt-4o`) - Added over 30 new languages from [top 100 languages](https://github.com/translate-tools/langstats). Texts is translated with use LLM (`openai/gpt-4o`) - Improved styles on settings page for better text rendering - Docs links is replaced from GitHub URLs to site docs URLs Updated `locales` package - Introduced LLM response validators that may return correction message - Introduced life cycle hooks for LLM processor - Exclude properties from original object by filter - Implemented correction for invalid requests to LLM. Now whole history with messages is preserved - Now object diffs are deep, to select only different parts of objects - Implemented skip for object properties - Add option to skip errors

  • Robert Vitonsky (15 Jul 25)

    chore: remove debug prints

  • Robert Vitonsky (15 Jul 25)

    refactor: remove unused method

  • Robert Vitonsky (14 Jul 25)

    refactor: use Intl API for language names

  • Robert Vitonsky (13 Jul 25)

    feat: add hooks for success/error handling

  • Robert Vitonsky (13 Jul 25)

    feat: introduce hook to fix parsing errors

  • Robert Vitonsky (13 Jul 25)

    feat: add locales

Linguist Website

Website

Linguist - Translate Web Pages Privately | Browser Translator Extension for Chrome & Firefox

Privacy‑first browser translator extension for Chrome and Firefox. Translate web pages, selected text, subtitles and messages instantly. Works offline and supports translation service integrations and APIs.

Redirects

Does not redirect

Security Checks

All 65 security checks passed

Server Details

  • IP Address 185.199.109.153
  • Hostname cdn-185-199-109-153.github.com
  • Location California, Pennsylvania, United States of America, NA
  • ISP GitHub Inc.
  • ASN AS54113

Associated Countries

  • US US

Safety Score

Website marked as safe

100%

Blacklist Check

linguister.io was found on 0 blacklists

  • AntiSocial Blacklist
  • Artists Against 419
  • Badbitcoin
  • Bambenek Consulting
  • CERT Polska
  • CoinBlockerLists
  • CRDF
  • CryptoScamDB
  • EtherAddressLookup
  • EtherScamDB
  • Fake Website Buster
  • MetaMask EthPhishing
  • NABP Not Recommended Sites
  • OpenPhish
  • PetScams
  • PhishFeed
  • PhishFort
  • Phishing.Database
  • PhishStats
  • PhishTank
  • Phishunt
  • RPiList Not Serious
  • Scam.Directory
  • SecureReload Phishing List
  • Spam404
  • StopGunScams
  • Suspicious Hosting IP
  • ThreatFox
  • ThreatLog
  • TweetFeed
  • URLhaus
  • ViriBack C2 Tracker

Website Preview

Website preview

Linguist Reviews

More Browser Extensions

About the Data: Linguist

Change History

API

You can access Linguist's data programmatically via our API. Simply make a GET request to:

https://api.awesome-privacy.xyz/v1/services/linguist

The REST API is free, no-auth and CORS-enabled. To learn more, view the API Docs or read the API Usage Guide.

Share Linguist

Help your friends compare Browser Extensions, and pick privacy-respecting software and services.
Share Linguist and Awesome Privacy with your network!

View Browser Extensions (19)