Translation without handing over the text
Machine translation is one of the most useful things software does, and also one of the most privacy hostile in its usual form. The standard arrangement is that you paste text into a box on a website and it travels to a data centre to be translated. For a restaurant menu that is fine. For a contract clause, a legal letter, a medical result or a private message it is a decision you are making without much thought.
This page moves the model to your side of that boundary. The translation model for whichever direction you select is downloaded once into your browser and every translation after that runs on your own processor. The text stays on your machine, which means there is no log of it anywhere, no account attached to it, and no limit on how much you translate.
Translating a passage
- Choose a Translate direction. English to Spanish is the default.
- Paste your text.
- Run it. The first run for a given direction downloads that direction’s model, which is the slow step.
- Copy the translation, or download it as a text file.
Switching direction later downloads that direction’s own model, since each pair is a separate one.
Six small models instead of one big one
The obvious way to build a translator is one model that knows many languages. Those exist and they are impressive, and they are also hundreds of megabytes at the small end and multiple gigabytes at the useful end. Downloading all of that to translate one sentence from English to French is a poor bargain in a browser.
The alternative is a family of small models, each trained for one direction. They are individually far smaller, and you only ever fetch the one you selected. That is the design here, and it is also the reason the language list is short rather than long: every extra language is a real download that has to justify itself, not a line in a dropdown.
What it does well and where it slips
The underlying models come from a long running open translation project and are the same architectural family that browser vendors have used for built in translation features. All six directions were verified with real sentences before they shipped, and they return natural, correct results rather than the stilted output people associate with older free translators.
The limits are the usual ones for machine translation and worth knowing. Idiom is translated literally more often than it should be. Register is not reliably preserved, so a formal sentence can come back casual. Technical vocabulary from a specific field can be rendered with the wrong term. And there is one acknowledged implementation caveat: the tokenizer for this model family is not available in the runtime’s faster implementation, and the library itself notes that results may be slightly less accurate because of it.
None of that makes the output unusable. It does mean you should read the result rather than forward it unread.
Combining it with the other local models
Translation is often the middle step rather than the whole task. A recording in one language becomes text with Transcribe Audio, that text is translated here, and the result can be spoken aloud with Text to Speech. Every one of those three runs on your own device, so a whole pipeline can happen without a single upload.
To compare an original against a translation, or two translations against each other, Diff Text lines them up. The rest of the text tools are on the text hub.
Model credit
This tool is powered by OPUS-MT, a project of the Language Technology Research Group at the University of Helsinki, run in the browser via Hugging Face’s Xenova ONNX conversions. Five of the six directions used here, English to Spanish, Spanish to English, English to French, French to English and German to English, are licensed Apache-2.0. The English to German direction is licensed CC-BY-4.0 by its publisher, and is credited here as that license requires.