Passer au contenu principal

Méthodes de traduction

Rosetta prend en charge dix méthodes de traduction. Chaque paire de langues peut utiliser une méthode différente — vous n'êtes pas contraint d'adopter une approche unique pour l'ensemble de votre projet.

Comparaison des méthodes

Fournisseurs de LLM

Axés sur la qualité, compatibles avec Markdown et la fonction de coaching. Idéals pour les projets riches en contenu.

MéthodeCléFonction
llm (par défaut)OPENROUTER_API_KEYLLM via OpenRouter — plus de 200 modèles, routage automatique
llm-coachedOPENROUTER_API_KEYLLM + règles de grammaire, dictionnaires, notes de style
openaiOPENAI_API_KEYAPI OpenAI directe (gpt-4o, gpt-4o-mini)
anthropicANTHROPIC_API_KEYAPI Anthropic directe (Claude Sonnet, Haiku, Opus)
geminiGEMINI_API_KEYAPI Google Gemini directe (Flash, Pro) — niveau gratuit

Traduction automatique (MT) traditionnelle

Axée sur la vitesse et les coûts. Idéale pour les paires clé-valeur à fort volume.

MéthodeCléFonction
google-translateGOOGLE_TRANSLATE_API_KEYAPI Google Cloud Translation v2 (plus de 130 langues)
deeplDEEPL_API_KEYAPI DeepL avec prise en charge des glossaires (plus de 30 langues)
microsoft-translatorMICROSOFT_TRANSLATOR_API_KEYAzure Cognitive Services Translator (plus de 100 langues)
libretranslate(auto-hébergé)LibreTranslate auto-hébergé (AGPL, gratuit)

Infrastructure

MéthodeCléFonction
api(par fournisseur)Client HTTP léger pour tout point de terminaison de traduction REST

Arbre de décision


llm — Traduction par LLM (Par défaut)

Traduit via n'importe quel LLM sur OpenRouter. Il s'agit de la méthode par défaut et de la plus polyvalente.

Fonctionnement :

  1. Regroupe les clés par lots (80 par lot par défaut) avec des instructions de registre et de contexte
  2. Envoie à OpenRouter sous forme de prompt structuré
  3. Analyse la réponse JSON
  4. Valide chaque traduction via le portail de qualité
  5. Enregistre les traductions validées, réessaie ou rejette les échecs

Cas d'utilisation : La plupart des projets. Particulièrement les sites riches en contenu utilisant Markdown, où les blocs de code et les shortcodes doivent être protégés.

Configuration :

{
"defaultMethod": "llm",
"model": "google/gemini-3.5-flash"
}

llm-coached — Traduction par LLM avec coaching

Identique à llm, mais avec des règles de grammaire, des dictionnaires de termes et des notes de style injectés dans chaque prompt.

Fonctionnement :

  1. Charge les données de coaching depuis .rosetta/coaching/<locale>.json ou le répertoire coaching/ d'un plugin
  2. Injecte les règles de grammaire, les termes du dictionnaire et les notes de style dans le prompt système
  3. Les termes du dictionnaire correspondant aux clés sources sont inclus en tant que terminologie requise
  4. La traduction se déroule comme avec llm, les données de coaching apportant une précision supplémentaire

Cas d'utilisation : Langues à faibles ressources, terminologie spécifique à un domaine (juridique, médical), registres formels, ou tout cas où la sortie générique du LLM n'est pas suffisamment précise.

Format des données de coaching :

.rosetta/coaching/fr.json
{
"grammar_rules": [
"French adjectives agree in gender and number with the noun they modify",
"Use 'vous' for formal contexts, 'tu' for informal"
],
"dictionary": {
"dashboard": "tableau de bord",
"deployment": "déploiement",
"settings": "paramètres"
},
"style_notes": "Prefer active voice. Avoid anglicisms where a native French term exists."
}

Voir également : Guide des langues à faibles ressources


openai — API OpenAI directe

Traduit directement via l'API OpenAI Chat Completions. Aucun intermédiaire OpenRouter — votre clé, votre compte, votre tableau de bord d'utilisation.

Modèles : gpt-4o (par défaut), gpt-4o-mini

Fonctionnalités :

  • ✅ Prise en charge de Markdown (traduction de contenu)
  • ✅ Prise en charge du coaching (règles de grammaire, remplacements par dictionnaire, notes de style)
  • ✅ Mode JSON pour une sortie clé-valeur structurée
  • ✅ Recul exponentiel avec nouvelle tentative (exponential backoff)

Configuration :

{
"pairs": {
"en:fr": { "method": "openai", "model": "gpt-4o-mini" }
}
}
export OPENAI_API_KEY=sk-proj-...

Obtenez votre clé sur platform.openai.com/api-keys.

anthropic — API Anthropic directe

Traduit directement via l'API Anthropic Messages. Utilise le paramètre system pour les données de coaching, permettant la mise en cache des prompts d'Anthropic.

Modèles : claude-sonnet-4-6 (par défaut), claude-haiku-4-5, claude-opus-4-7

Fonctionnalités :

  • ✅ Prise en charge de Markdown (traduction de contenu)
  • ✅ Prise en charge du coaching (règles de grammaire, remplacements par dictionnaire, notes de style)
  • ✅ Mise en cache du prompt système (amortit le coût du coaching sur l'ensemble des lots)
  • ✅ Recul exponentiel avec nouvelle tentative

Configuration :

{
"pairs": {
"en:ja": { "method": "anthropic", "model": "claude-haiku-4-5" }
}
}
export ANTHROPIC_API_KEY=sk-ant-...

Obtenez votre clé sur console.anthropic.com.

gemini — API Google Gemini directe

Traduit directement via l'API Google Gemini generateContent. Niveau gratuit disponible — le meilleur point de départ sans frais.

Modèles : gemini-2.5-flash (par défaut), gemini-2.5-pro

Fonctionnalités :

  • ✅ Prise en charge de Markdown (traduction de contenu)
  • ✅ Prise en charge du coaching (règles de grammaire, remplacements par dictionnaire, notes de style)
  • ✅ Mode de réponse JSON via responseMimeType
  • ✅ Niveau gratuit (quota quotidien généreux)
  • ✅ Recul exponentiel avec nouvelle tentative

Configuration :

{
"pairs": {
"en:ko": { "method": "gemini", "model": "gemini-2.5-pro" }
}
}
export GEMINI_API_KEY=AI...

Obtenez votre clé sur aistudio.google.com/apikey.

Validation des modèles

Les fournisseurs de LLM directs (openai, anthropic, gemini) valident votre chaîne de modèle lors de la première utilisation. Cela permet de détecter trois catégories d'erreurs :

Format de méthode incorrect — Utilisation d'un chemin de modèle de type OpenRouter avec un fournisseur direct :

[WARN] OpenAI: model "google/gemini-3.5-flash" looks like an OpenRouter path.
Direct providers use bare model names (e.g., "gpt-4o").
To use OpenRouter models, set method to 'llm' instead.

Fournisseur incorrect — Utilisation d'un modèle provenant d'un tout autre fournisseur :

[WARN] Gemini: model "claude-sonnet-4-6" is an Anthropic model.
This provider (gemini) cannot serve Anthropic models.
Use --method anthropic or set "method": "anthropic" in config.

Modèle obsolète ou mal orthographié — Lors du premier appel à l'API, rosetta récupère la liste des modèles actifs du fournisseur et vérifie votre modèle par rapport à celle-ci :

[WARN] Gemini: model "gemini-1.5-flash" not found in available models.
Similar models: gemini-2.0-flash, gemini-2.5-flash, gemini-2.5-pro
The API call will proceed — the provider will give the final verdict.

:::note Il s'agit d'avertissements, et non d'erreurs La validation du modèle consigne des avertissements mais ne bloque pas l'appel à l'API. L'API du fournisseur rend le verdict final — un futur nom de modèle pourrait correspondre à un modèle différent, et nous ne souhaitons pas bloquer l'accès sur la base d'heuristiques. :::


google-translate — API Google Cloud Translation

Intégration directe avec l'API Google Cloud Translation v2. Utilise l'API REST — aucun SDK, aucun compte de service. Uniquement la clé API.

Cas d'utilisation : Paires de chaînes clé-valeur à fort volume où la vitesse et le coût priment sur la nuance. Prend en charge plus de 130 langues de manière native.

Limites :

  • ⚠️ Aucune prise en charge de Markdown. Corrompra les blocs de code, les shortcodes et les variables d'interpolation.
  • Aucun contrôle du registre ou du ton
  • Aucun coaching ni application de la terminologie
npx i18n-rosetta sync --method google-translate

:::tip Détection automatique Si seule GOOGLE_TRANSLATE_API_KEY est définie (aucune clé OpenRouter), rosetta bascule automatiquement vers Google Translate. Aucune modification de configuration n'est requise. :::

deepl — API DeepL

Intégration directe avec l'API de traduction DeepL. Prend en charge les glossaires pour une terminologie cohérente.

Cas d'utilisation : Langues européennes dans lesquelles DeepL excelle (allemand, français, espagnol, néerlandais, polonais, etc.). La prise en charge des glossaires impose une terminologie cohérente sans nécessiter de données de coaching.

Fonctionnalités :

  • ✅ Détection automatique du point de terminaison gratuit/pro (suffixe :fx sur les clés gratuites)
  • ✅ Création et gestion de glossaires
  • ✅ Contrôle du niveau de formalité
  • ⚠️ Aucune prise en charge de Markdown — paires clé-valeur uniquement

Configuration :

{
"pairs": {
"en:de": { "method": "deepl" }
}
}
export DEEPL_API_KEY=your-key-here

Obtenez votre clé sur deepl.com/pro-api.

microsoft-translator — Azure Cognitive Services

Intégration directe avec l'API Microsoft Translator Text v3.

Cas d'utilisation : Environnements d'entreprise disposant d'une infrastructure Azure existante. Prend en charge plus de 100 langues, y compris de nombreuses langues non couvertes par Google Translate.

Fonctionnalités :

  • ✅ Jusqu'à 100 segments par requête (débit élevé)
  • ✅ Paramètre de région facultatif pour l'optimisation de la latence
  • ⚠️ Aucune prise en charge de Markdown — paires clé-valeur uniquement
  • ⚠️ Aucune traduction de contenu — paires clé-valeur uniquement

Configuration :

{
"pairs": {
"en:ar": { "method": "microsoft-translator" }
}
}
export MICROSOFT_TRANSLATOR_API_KEY=your-key
export MICROSOFT_TRANSLATOR_REGION=global # optional

Obtenez votre clé depuis le Portail Azure → Cognitive Services → Translator.

libretranslate — Traduction auto-hébergée

Traduction open source auto-hébergée utilisant LibreTranslate. S'exécute localement ou sur votre propre infrastructure — aucun coût d'API, souveraineté totale des données.

Cas d'utilisation : Projets nécessitant une traduction hors ligne, la conformité en matière de confidentialité des données (RGPD) ou un fonctionnement sans frais. Particulièrement utile pour les pipelines CI qui ne doivent pas dépendre d'API externes.

Fonctionnalités :

  • ✅ Auto-hébergé — aucun appel d'API externe
  • ✅ Gratuit et open source (AGPL-3.0)
  • ✅ Déploiement Docker disponible
  • ⚠️ Aucune prise en charge de Markdown — paires clé-valeur uniquement
  • ⚠️ Aucune traduction de contenu — paires clé-valeur uniquement
  • ⚠️ La qualité varie selon la paire de langues

Configuration :

# Run LibreTranslate locally with Docker
docker run -d -p 5000:5000 libretranslate/libretranslate

# Configure (optional — defaults to localhost:5000)
export LIBRETRANSLATE_API_URL=http://localhost:5000/translate
{
"pairs": {
"en:es": { "method": "libretranslate" }
}
}

api — API de traduction distante

Un client HTTP léger pour les points de terminaison de traduction hébergés par la communauté ou protégés par la propriété intellectuelle. Rosetta envoie les clés et reçoit les traductions en retour — il ne contient aucune logique de traduction.

Cas d'utilisation : Lorsque les méthodes de traduction sont hébergées côté serveur (par exemple, données de coaching propriétaires, modèles affinés, pipelines FST qui ne peuvent pas être distribués).

{
"pairs": {
"en:crk": {
"method": "api",
"endpoint": "https://api.example.com/v1/translate",
"apiKey": "your-key"
}
}
}

:::note Traduction communautaire compatible OCAP La méthode api constitue la passerelle vers la traduction hébergée par la communauté et compatible OCAP. Les communautés autochtones et de langues minoritaires peuvent héberger leurs propres points de terminaison de traduction — en gardant les données de coaching, les modèles affinés et la propriété intellectuelle linguistique sous le contrôle de la communauté — tandis que Rosetta s'y connecte en tant que client léger.

Consultez la rubrique Soutenir une langue à faibles ressources pour obtenir le guide complet sur l'hébergement communautaire, et Servir une méthode via une API pour connaître les exigences relatives aux points de terminaison. :::


Configuration par paire de langues

La véritable puissance réside dans la combinaison des méthodes par paire de langues :

i18n-rosetta.config.json
{
"version": 3,
"pairs": {
"en:fr": { "method": "deepl" },
"en:ja": { "method": "openai", "model": "gpt-4o" },
"en:ko": { "method": "gemini" },
"en:ar": { "method": "microsoft-translator" },
"en:crk": { "methodPlugin": "crk-coached-v1" }
}
}

Ceci traduit le français via DeepL (prise en charge des glossaires), le japonais via OpenAI (qualité), le coréen via Gemini (niveau gratuit), l'arabe via Microsoft Translator (couverture) et le cri des plaines via un plugin avec coaching (spécialisé).

Plugins

Les plugins sont des recettes de traduction pré-emballées pour des paires de langues spécifiques. Il s'agit de manifestes JSON — et non de code — qui indiquent à rosetta quelle méthode utiliser, avec quels paramètres, et quelle qualité a été évaluée.

:::tip De l'environnement d'évaluation à la production en une seule commande Les plugins développés et éprouvés dans l'environnement d'évaluation peuvent être installés directement — la méthode que vous y validez se déploie ici à l'aide d'une seule commande plugin install. Consultez la rubrique Évaluation de la traduction automatique (MT) pour connaître le flux de travail d'évaluation complet. :::

i18n-rosetta plugin install ./french-formal-v1/
i18n-rosetta plugin list
i18n-rosetta plugin remove french-formal-v1

Consultez la Spécification des plugins pour connaître le format complet du manifeste.


Changement de fournisseur

Vous passez d'une méthode à l'autre ? Le format du modèle et la variable d'environnement changent — voici la correspondance :

OpenRouter → Fournisseur direct

i18n-rosetta.config.json
{
"pairs": {
"en:fr": {
- "method": "llm",
- "model": "openai/gpt-4o"
+ "method": "openai",
+ "model": "gpt-4o"
}
}
}
Environment variables
- export OPENROUTER_API_KEY=sk-or-v1-...
+ export OPENAI_API_KEY=sk-proj-...

Différences clés :

  • OpenRouter utilise le format provider/model (par exemple, openai/gpt-4o). Les fournisseurs directs utilisent des noms de modèles simples (par exemple, gpt-4o).
  • Chaque fournisseur direct possède sa propre variable d'environnement (OPENAI_API_KEY, ANTHROPIC_API_KEY, GEMINI_API_KEY).
  • Si vous utilisez un format de modèle incorrect, rosetta vous en avertira — voir Validation des modèles.

Fournisseur direct → OpenRouter

i18n-rosetta.config.json
{
"pairs": {
"en:ja": {
- "method": "anthropic",
- "model": "claude-sonnet-4-6"
+ "method": "llm",
+ "model": "anthropic/claude-sonnet-4-6"
}
}
}

:::tip Quand utiliser OpenRouter ou un fournisseur direct Utilisez OpenRouter lorsque vous souhaitez passer d'un modèle à l'autre sans modifier les variables d'environnement, ou lorsque vous souhaitez accéder à plus de 200 modèles à partir d'une seule clé. Utilisez les fournisseurs directs lorsque vous souhaitez une facturation plus simple, une latence plus faible (aucun intermédiaire), ou un accès à des fonctionnalités spécifiques au fournisseur, telles que la mise en cache des prompts d'Anthropic. :::


Comparaison des coûts

Coût approximatif pour 1 000 clés traduites (en supposant environ 10 jetons par clé, 80 clés par lot) :

MéthodeCoût / 1K clésVitesseQualitéIdéal pour
gemini (Flash)Gratuit (dans la limite du niveau)RapideBonneDémarrage, projets personnels
google-translate~0,02 $Très rapideAdéquateFort volume, langues européennes
deepl~0,02 $RapideBonneLangues européennes, terminologie
microsoft-translator~0,01 $RapideAdéquateEnvironnements Azure, large couverture linguistique
libretranslateGratuit (auto-hébergé)VariablePassableEnvironnements isolés (air-gapped), RGPD, pipelines CI
gemini (Pro)~0,07 $MoyenneTrès bonneSensible à la qualité, quota gratuit
openai (GPT-4o-mini)~0,01 $RapideBonneLLM économique
openai (GPT-4o)~0,10 $MoyenneTrès bonneSensible à la qualité
anthropic (Haiku)~0,01 $RapideBonneLLM économique
anthropic (Sonnet)~0,10 $MoyenneTrès bonneSensible à la qualité
anthropic (Opus)~0,50 $LenteExcellenteQualité maximale
llm (OpenRouter)Variable selon le modèleVariableVariableComparaison de modèles, expérimentation

:::note Il s'agit d'estimations Les coûts réels dépendent de la longueur de votre texte source, de la taille des lots et des modifications de tarification des fournisseurs. Consultez la page de tarification actuelle de chaque fournisseur pour connaître les tarifs exacts. :::


Voir également