Simple Translate: Browser Translation Extension and Development Setup
WebExtensions for translating text on web pages
At a glance
- What is it?
- Simple Translate is a WebExtension for translating selected or typed text on web pages through Google Translate or DeepL. It suits readers who want an in-browser translation control, but the repository does not document API configuration, translation history behavior, or rollback.
- Who is it for?
- Simple Translate fits users who mainly need to translate selected or typed text from a browser extension and developers who can work with WebExtension APIs. It is a poor fit for users who require documented offline translation, whole-page replacement, or a clearly specified configuration and data-retention policy.
- Can I use it commercially?
- Yes, with conditions. MPL-2.0 is a weak copyleft licence: you can use it inside commercial and closed-source software, but if you distribute changes to its own files, you must publish those changes under the same licence.
- Is it still maintained?
- Yes. The repository last received commits 51 days ago.
- What is it written in?
- Mainly JavaScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.
Editorial analysis
Simple Translate's Browser-Level Translation Scope
Simple Translate addresses a narrow but common task: translating a piece of text without sending the reader to a separate translation site. The README says it can translate selected text or text typed into the extension, with Google Translate and DeepL supported as translation services. That scope makes it a browser companion rather than a general language-learning environment or a document conversion suite.
The project is aimed at people who read web pages containing occasional words, phrases, or passages in another language. It is also aimed at extension users who want the translation interface to remain close to the page. The repository provides browser distribution links for Firefox, Chrome, and Microsoft Edge, while the default branch is `master` and the primary implementation language is JavaScript.
The distinction matters because the README does not claim automatic translation of an entire document. It describes selected or typed text. Whole-page translation would require different assumptions about preserving page layout, handling dynamically loaded content, and dealing with mixed-language documents. Those behaviors are not documented here, so Simple Translate should not be evaluated as if it were a complete page-localization engine.
Google Translate and DeepL Integration Boundaries
The stated translation mechanism is integration with Google Translate and the DeepL API. The README names both services but does not document the request format, authentication fields, language-selection controls, retry behavior, rate-limit handling, or behavior when a provider is unavailable. Those details cannot be inferred safely from the short project description.
The repository layout adds some implementation context. The root contains `src/`, `webpack.config.dev.js`, `webpack.config.dist.js`, `webpack.utils.js`, and a `package.json` with React, browser-extension typings, and `webextension-polyfill` as dependencies. This supports a browser extension built around JavaScript and React, with separate development and distribution Webpack configurations. It does not establish exactly how requests reach either provider.
That missing contract is a real adoption constraint. A user may need a DeepL API key, but the README does not say where to enter it or whether a key is required for every DeepL mode. It also does not say whether Google Translate works through a public endpoint, an authenticated service, or a provider-specific integration. The extension's privacy policy is linked, but its contents are not included in the repository documentation available here. Provider configuration and data handling should therefore be checked in the actual extension UI and linked privacy policy.
Building the Extension with the Documented Toolchain
The development instructions require Node 24.13.0 and npm 11.7.0. The `package.json` repeats those versions under `engines`, so using the documented versions avoids mismatch with the project configuration. The README does not provide a production installation guide for the published extension, but it gives a complete development flow based on cloning the repository, installing dependencies, and starting a Webpack watch process.
Use the following commands from a directory where the repository should be created. `git clone` fetches the project, `npm install` installs its declared dependencies, and `npm run watch-dev` starts the development Webpack configuration in watch mode.
git clone https://github.com/sienori/simple-translateAfter cloning, change into the repository directory and install dependencies with the required npm version.
npm installStart the documented development build. The command is `npm run watch-dev`, as defined in `package.json`.
npm run watch-devThe README then gives browser-specific loading instructions. Chrome and Edge load `simple-translate/dev/chrome`; Firefox loads `simple-translate/dev/firefox`. Those directories are the expected build outputs for the corresponding browser flows. The repository also defines a `typecheck` script and a `build` script, although the truncated `package.json` excerpt does not show the complete `build` command beyond its beginning.
Loading a Development Build in Chrome, Edge, and Firefox
Chrome and Edge use nearly the same development workflow. Open the browser's extensions page, enable Developer Mode, choose the unpacked-extension command, and select the generated `simple-translate/dev/chrome` directory. The important detail is that the browser loads a directory rather than a JavaScript source file. If the directory is missing, the build or watch process has not produced the expected output.
In Firefox, open `about:debugging`, choose Load Temporary Add-on, and select `simple-translate/dev/firefox`. The temporary installation is useful for development because it does not require the same packaging flow as a published Firefox add-on. The README does not document how to preserve a temporary Firefox installation across restarts, so users should not assume that a development build behaves like a permanently installed release.
The repository contains separate development and distribution Webpack configurations, which indicates that browser-specific bundles are part of the build design. It also includes browser-specific output paths in the README. The documentation does not state whether Chrome, Edge, and Firefox share every permission or whether their translation settings are stored in the same format. A first check after loading should be whether the extension appears in the browser's extension interface and whether its translation control can be invoked on a selected sentence.
Maintenance Signals and the Limits of the License
The repository is not archived. Its last push was on 2026-09-02, and recent releases include version 3.1.0 on 2026-08-24, version 3.0.1 on 2026-01-25, and version 3.0.0 on 2024-05-13. These dates show recent repository activity and release history, but they do not by themselves establish how frequently every part of the extension is maintained.
The project is licensed under MPL-2.0. That identifier indicates the Mozilla Public License version 2.0, but this review does not interpret legal obligations or provide legal advice. Anyone modifying or redistributing the code should read the `LICENSE` file and determine which obligations apply to the intended use.
Upgrade cost is likely to involve checking the required Node and npm versions, rebuilding browser-specific bundles, and reviewing changes between releases. The README does not document a migration guide, compatibility matrix, database schema, or rollback procedure. It also does not state how users should move settings between versions. Those omissions matter for contributors and for deployments that maintain customized extension builds.
Simple Translate Compared with a Separate Translation Workflow
The clearest alternative is a separate translation service or website. That approach puts translation in its own tab or window, rather than exposing selected or typed text through an extension control. It may be a better fit when a reader needs a full translation interface, document paste workflows, or a provider selection process that is visible outside the browser.
Simple Translate's difference is proximity to the page. Its documented interaction begins with selected or typed text, and its browser packaging is available for Firefox, Chrome, and Microsoft Edge. A separate service generally does not require loading an unpacked extension during development, and it does not tie the interaction to a repository's Webpack build outputs.
The trade-off is that the extension's convenience depends on details the README leaves undocumented. It does not specify offline behavior, provider configuration, caching, history, bulk translation, keyboard behavior, or the handling of translated output. The project is therefore easier to recommend as a focused text translation control than as a replacement for every translation workflow.
Editorial conclusion
Simple Translate fits users who mainly need to translate selected or typed text from a browser extension and developers who can work with WebExtension APIs. It is a poor fit for users who require documented offline translation, whole-page replacement, or a clearly specified configuration and data-retention policy. Check the installed browser build, Google Translate or DeepL availability, and the extension's privacy policy before adopting it.
Frequently asked questions
How do I install and develop Simple Translate?
The README requires Node 24.13.0 and npm 11.7.0. Clone the repository, run `npm install`, start `npm run watch-dev`, and load the generated `simple-translate/dev/chrome` or `simple-translate/dev/firefox` directory through the browser's extension or debugging page.
Which translation services does Simple Translate support?
The README states that Simple Translate supports Google Translate and the DeepL API. It does not document the provider configuration steps or whether an API key is required.
Can Simple Translate translate an entire web page?
The documented scope is selected or typed text on web pages. The README does not claim whole-page translation or document how page layout and dynamic content are handled.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/sienori-simple-translate)Was this useful?