Transformers
Translation
Multi-language translation with Helsinki-NLP models.
Translate text between languages using Helsinki-NLP OPUS-MT models. Each model handles a specific language pair.
For full API reference (translate(), translateMany(), options, result types, and custom providers), see the Core Translation guide.
See it in action
Try the Translator block — it runs offline Opus-MT translation live in the browser.
Recommended Models
| Model | Direction | Size | Use Case |
|---|---|---|---|
Xenova/opus-mt-en-fr | English → French | ~100MB | EN-FR translation |
Xenova/opus-mt-en-de | English → German | ~100MB | EN-DE translation |
Xenova/opus-mt-en-es | English → Spanish | ~100MB | EN-ES translation |
Xenova/opus-mt-fr-en | French → English | ~100MB | FR-EN translation |
Xenova/opus-mt-de-en | German → English | ~100MB | DE-EN translation |
Xenova/opus-mt-es-en | Spanish → English | ~100MB | ES-EN translation |
OPUS-MT models are directional — each model translates one direction only. Use the correct model for your source → target language pair. Browse the full list at Helsinki-NLP on HuggingFace.
Multi-Language Support
Based on the Translator block — use a different model per language pair:
import { transformers } from '@localmode/transformers';
import { translate } from '@localmode/core';
const models = {
'en-fr': transformers.translator('Xenova/opus-mt-en-fr'),
'en-de': transformers.translator('Xenova/opus-mt-en-de'),
'en-es': transformers.translator('Xenova/opus-mt-en-es'),
'fr-en': transformers.translator('Xenova/opus-mt-fr-en'),
'de-en': transformers.translator('Xenova/opus-mt-de-en'),
'es-en': transformers.translator('Xenova/opus-mt-es-en'),
};
async function translateText(text: string, pair: keyof typeof models) {
const { translation } = await translate({
model: models[pair],
text,
});
return translation;
}Best Practices
Translation Tips
- One model per direction — OPUS-MT models are unidirectional
- Cache model instances — Store models in a Map keyed by language pair
- Keep text reasonable — Very long texts may lose quality; consider chunking
- Support cancellation — Pass
abortSignalfor user-cancelable translations
Composed Block
| Block | Description | Links |
|---|---|---|
| Translator | Offline Opus-MT translation across language pairs | Live · Install: npx shadcn add @localmode/ui/blocks/writing-tools/translate |