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 Translator and Smart Writer for working demos.
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 showcase app — 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
Showcase Apps
| App | Description | Links |
|---|---|---|
| Translator | Translate between 200+ language pairs | Demo · Source |
| Smart Writer | Multi-language writing with translation support | Demo · Source |