Comment nous avons traduit 118 pages en 30 langues pour 22 $ chacune
Traduire un site Web en 30 langues pour 660 $ (et pourquoi la qualité était bonne)
Le mois dernier, nous avons livré un projet qui aurait coûté entre 150 000 $ et 300 000 $ via une agence de traduction traditionnelle. Nous l'avons fait pour 660 $ au total. C'est 118 pages traduites en 30 langues à environ 22 $ par langue. Non, ce n'est pas une faute de frappe. Et non, la qualité n'était pas horrible.
Je veux vous expliquer exactement comment nous avons réussi ce tour de force -- l'architecture, les outils, l'ingénierie des prompts, le processus d'assurance qualité, et les vrais compromis. Parce que bon marché ne doit pas signifier mauvais, mais cela signifie que vous devez être intelligent sur l'endroit où vous investissez vos efforts.
Table des matières
- L'étendue du projet
- Pourquoi la traduction traditionnelle est si chère
- Notre architecture de traduction IA
- L'ingénierie des prompts qui compte vraiment
- Ventilation des coûts : où vont les 22 $
- Assurance qualité sans locuteurs natifs
- Implémentation technique en Next.js
- Ce que la traduction IA se trompe
- Quand vous devriez toujours payer pour une traduction humaine
- FAQ
L'étendue du projet
Le client était une entreprise B2B SaaS en expansion sur les marchés européens, asiatiques et latino-américains. Son site marketing contenait 118 pages : pages d'accueil, pages de fonctionnalités, articles de blog, pages légales et documentation. Le contenu était originellement en anglais.
Les langues cibles comprenaient les suspects habituels -- l'espagnol, le français, l'allemand, le japonais, le coréen, le mandarin -- plus certaines qui sont plus difficiles à trouver des traducteurs pour, comme l'estonien, le letton, le lituanien et le slovène. Trente langues au total.
Un rapide calcul sur le volume de contenu :
| Métrique | Nombre |
|---|---|
| Pages totales | 118 |
| Mots moyens par page | ~620 |
| Mots anglais totaux | ~73 160 |
| Mots traduits totaux | ~2 194 800 (73 160 × 30) |
| Langues | 30 |
| Coût total | ~660 $ |
| Coût par langue | ~22 $ |
| Coût par mot (traduit) | 0,0003 $ |
Pour contextualiser, la traduction humaine professionnelle coûte généralement 0,10 $ à 0,30 $ par mot selon la paire de langues. Au point médian de 0,20 $/mot, on regarderait 14 632 $ par langue ou 438 960 $ au total. Même les agences budgétaires qui utilisent la traduction automatique avec une légère révision humaine facturent 0,05-0,08 $ par mot.
Pourquoi la traduction traditionnelle est si chère
Je ne veux pas critiquer l'industrie de la traduction. Les traducteurs humains font un travail incroyable, et pour certains types de contenu, il n'y a pas de substitut. Mais voici ce qui motive le coût :
Les modèles de tarification au mot ont été conçus pour un monde où chaque mot nécessitait un effort cognitif humain. Un traducteur peut traiter 2 000-3 000 mots par jour pour le contenu technique. À 73 160 mots, cela représente 24-36 jours-traducteur par langue. Multiplié par 30 langues et vous regardez 720-1 080 jours-personne de travail.
Les paires de langues rares coûtent plus cher. Trouver un traducteur technique de qualité anglais-vers-letton n'est pas facile. L'offre et la demande jouent un rôle.
L'overhead de gestion de projet est réel. Les agences de traduction ont des chefs de projet qui coordonnent entre les traducteurs, les réviseurs et les clients. Cet overhead se bake dans le tarif au mot.
Le changement de contexte coûte du temps. Un traducteur travaillant sur votre texte marketing doit comprendre votre voix de marque, votre terminologie produit et votre audience. Ce temps de montée en charge se répartit sur le projet, mais c'est réel.
Aucun de cela n'est gaspillé -- c'est juste cher. Et pour une entreprise testant de nouveaux marchés, dépenser 400 000 $ en traduction avant d'avoir validé l'ajustement produit-marché dans ces régions est une pilule difficile à avaler.
Notre architecture de traduction IA
Voici le système que nous avons construit. Ce n'est pas un simple appel API -- c'est un pipeline.
Étape 1 : Extraction de contenu et segmentation
Le site a été construit avec Next.js, ce qui a facilité notre travail. Tout le contenu vivait dans des fichiers de données structurées (MDX pour les articles de blog, JSON pour les chaînes UI, et le contenu structuré d'un CMS sans tête).
Nous avons écrit un script qui a analysé toutes les sources de contenu et produit un format intermédiaire normalisé :
interface TranslationUnit {
id: string; // clé unique comme "homepage.hero.title"
source: string; // texte anglais
context: string; // où cela apparaît (page, section)
type: 'heading' | 'paragraph' | 'ui-string' | 'legal' | 'meta';
maxLength?: number; // pour les chaînes UI avec contraintes d'espace
glossaryTerms: string[]; // termes spécifiques au produit trouvés dans cette unité
}
C'est critique. Vous ne voulez pas jeter des pages entières à un LLM et espérer le meilleur. Segmenter le contenu en unités de traduction vous donne le contrôle sur le contexte, vous permet de traiter différents types de contenu différemment, et rend les mises à jour incrémentielles possibles plus tard.
Étape 2 : Génération de glossaire et guide de style
Avant de traduire un seul mot, nous avons construit un glossaire. Cela comprenait :
- Noms de produits (ne jamais les traduire)
- Termes techniques avec traductions préférées
- Phrases spécifiques à la marque
- Directives de ton par type de contenu
Nous avons en fait utilisé Claude pour aider à construire le glossaire initial en analysant le contenu anglais et en identifiant les termes qui nécessiteraient une traduction cohérente. Puis nous avons demandé au client de l'examiner et de l'approuver.
Étape 3 : Traduction par lot avec l'API Claude
Nous avons utilisé l'API Claude 3.5 Sonnet (maintenant Claude 4 Sonnet est disponible et encore meilleur pour cela) pour la traduction réelle. Pourquoi Claude plutôt que GPT-4o ou Gemini ? Quelques raisons :
- Meilleur suivi des prompts système complexes de manière cohérente
- Sortie plus naturelle dans les langues romanes et germaniques dans nos tests
- La fenêtre de contexte de 200 000 tokens nous a permis d'inclure des glossaires complets et des guides de style dans chaque requête
- Les prix étaient compétitifs pour notre cas d'usage
Nous avons groupé les unités de traduction par groupes de 20-30, organisées par page et type de contenu. Chaque lot incluait le glossaire, le guide de style, et le contexte sur où le texte apparaissait.
import anthropic
import json
client = anthropic.Anthropic()
def translate_batch(units: list[dict], target_lang: str, glossary: dict, style_guide: str) -> list[dict]:
system_prompt = f"""Vous êtes un traducteur professionnel spécialisé dans la
localisation en {target_lang} pour les entreprises de logiciels B2B.
GLOSSAIRE (utilisez ces traductions exactes) :
{json.dumps(glossary[target_lang], indent=2, ensure_ascii=False)}
GUIDE DE STYLE :
{style_guide}
RÈGLES :
- Préservez tout le formatage markdown
- Ne traduisez jamais les noms de produits listés dans le glossaire
- Adaptez les idiomes naturellement -- ne traduisez pas littéralement
- Pour les chaînes UI avec maxLength, restez dans la limite de caractères
- Sortie JSON valide correspondant à la structure d'entrée"""
user_prompt = f"""Traduisez les unités de traduction suivantes en {target_lang}.
Retournez un tableau JSON avec la même structure, en remplaçant 'source' par 'translation'.
{json.dumps(units, indent=2, ensure_ascii=False)}"""
response = client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=8192,
system=system_prompt,
messages=[{"role": "user", "content": user_prompt}]
)
return json.loads(response.content[0].text)
Étape 4 : Vérifications de qualité automatisées
Après la traduction, chaque unité a suivi des vérifications automatisées :
- Préservation du format : Le markdown, les balises HTML et les variables ont-ils survécu ?
- Validation de longueur : Les chaînes UI sont-elles dans leur longueur maximale ?
- Conformité au glossaire : Les noms de produits ont-ils été laissés non traduits ?
- Intégrité des espaces réservés : Les espaces réservés
{variable}sont-ils intacts ? - Échantillonnage de rétro-traduction : Traduire 10 % de la sortie en anglais et comparer la similarité sémantique
Environ 3-4 % des unités de traduction n'ont pas réussi une ou plusieurs vérifications et ont suivi un deuxième passage avec des instructions de correction spécifiques.
Étape 5 : Assemblage et intégration
Les unités traduites ont été rassemblées dans le format attendu par l'app Next.js -- fichiers de locale JSON, MDX traduits, et entrées CMS. Nous avons utilisé next-intl pour le routage et la gestion des locales.
L'ingénierie des prompts qui compte vraiment
J'ai vu des gens jeter du texte à ChatGPT et appeler cela « la traduction IA ». Cela vous donne peut-être 70 % de qualité. L'écart entre 70 % et 95 % réside entièrement dans la façon dont vous formulez votre prompt.
Voici ce qui a fait bouger l'aiguille :
Le contexte est tout
Dire au modèle « traduisez ceci en français » vous donne une sortie générique. Lui dire « traduisez ce titre de héros pour une page d'accueil B2B SaaS ciblant les directeurs informatiques en France, en maintenant un ton confiant mais pas agressif » vous donne quelque chose d'utilisable.
Nous avons inclus le type de page, l'audience cible et le but de chaque bloc de contenu dans chaque requête.
Exemples few-shot par langue
Pour chaque langue, nous avons créé 5-10 exemples de traductions qui capturaient le ton que nous voulions. Ceux-ci sont allés dans le prompt système. Pour les langues où nous avions un locuteur natif dans l'équipe ou dans notre réseau (environ 8 des 30), nous leur avons demandé d'écrire ces exemples. Pour les autres, nous les avons générés puis affinés par comparaison de rétro-traduction.
Application du glossaire
Cela semble évident mais c'est la chose la plus impactante que vous puissiez faire. Sans glossaire, le modèle traduira votre nom de produit « CloudSync » par l'équivalent de « synchronisation cloud » dans certaines langues. Il utilisera différents termes pour la même fonctionnalité sur les pages. L'incohérence tue la confiance.
Stratégie de chunking
Nous avons trouvé que traduire 500-800 mots à la fois, groupés par section de page, donnait les meilleurs résultats. Trop petit (phrases individuelles) et vous perdez le contexte. Trop grand (pages entières) et la qualité se dégrade vers la fin de la sortie.
Ventilation des coûts : où vont les 22 $
Soyons précis sur l'argent.
| Composant de coût | Par langue | Total (30 langues) |
|---|---|---|
| API Claude (traduction) | 16,40 $ | 492,00 $ |
| API Claude (QA/rétro-traduction) | 3,20 $ | 96,00 $ |
| API Claude (génération de glossaire) | 0,80 $ | 24,00 $ |
| Appels API divers (retries, corrections) | 1,60 $ | 48,00 $ |
| Coûts API totaux | 22,00 $ | 660,00 $ |
Cela n'inclut pas le temps d'ingénierie pour construire le pipeline, qui était d'environ 40 heures. Mais ce pipeline est maintenant réutilisable. Quand le client ajoute un nouvel article de blog, le traduire dans les 30 langues coûte environ 2-4 $ en frais API et s'exécute automatiquement dans leur pipeline CI/CD.
La tarification de l'API Claude au moment de notre projet (utilisant Claude 3.5 Sonnet) était de 3 $ par million de tokens d'entrée et 15 $ par million de tokens de sortie. Avec Claude 4 Sonnet, la tarification est comparable mais vous obtenez une meilleure qualité, ce qui signifie moins de retries.
Assurance qualité sans locuteurs natifs
C'est la partie sur laquelle les gens sont les plus sceptiques, et honnêtement, ils ont raison de l'être. Voici notre processus d'AQ réel :
Vérifications automatisées (capture ~60 % des problèmes)
Les vérifications de préservation de format, de longueur et de glossaire que j'ai mentionnées. Ce sont des vérifications déterministes qui détectent les erreurs les plus embarrassantes -- HTML cassé, variables manquantes, noms de marques traduits.
Comparaison de rétro-traduction (capture ~25 % des problèmes restants)
Nous avons traduit un échantillon aléatoire de 10 % de chaque langue en anglais en utilisant un modèle différent (GPT-4o) et avons comparé la similarité sémantique avec l'original. Si la rétro-traduction s'écartait considérablement, nous l'avions signalée pour examen.
Vérifications par locuteurs natifs (capture les problèmes de nuance)
Pour les 8 langues où nous avions accès à des locuteurs natifs (espagnol, français, allemand, portugais, japonais, coréen, mandarin, néerlandais), nous leur avons fait examiner 15-20 pages chacun. Leurs commentaires étaient illuminants :
- Qualité générale : 8-9/10 pour le contenu informatif
- En-têtes marketing : 6-7/10 (nécessitaient une adaptation plus créative)
- Documentation technique : 9/10
- Pages légales : 7/10 (acceptable mais pas parfait)
En fonction de leurs commentaires, nous avons fait un deuxième passage sur les en-têtes marketing avec une formulation plus créative, ce qui les a portés à 8/10.
Boucle de rétroaction communautaire
Le client a ajouté un petit lien « Suggérer une meilleure traduction » sur chaque page. Au cours du premier mois suivant le lancement, ils ont reçu environ 140 suggestions dans toutes les langues -- environ 0,04 % de tout le contenu traduit. La plupart des suggestions étaient des préférences stylistiques plutôt que des erreurs.
Implémentation technique en Next.js
Le site utilise Next.js App Router avec next-intl pour l'internationalisation. Voici la configuration de haut niveau :
// middleware.ts
import createMiddleware from 'next-intl/middleware';
export default createMiddleware({
locales: ['en', 'es', 'fr', 'de', 'ja', 'ko', 'zh', /* ... 23 autres */],
defaultLocale: 'en',
localePrefix: 'as-needed'
});
Pour l'intégration de CMS sans tête, le contenu traduit est stocké en tant que variantes de locale. Les articles de blog en MDX obtiennent des fichiers séparés par locale. Les chaînes UI vivent dans les fichiers de messages JSON.
La build génère des pages statiques pour toutes les combinaisons locale/page. C'est 118 × 31 (y compris l'anglais) = 3 658 pages. Avec ISR (Incremental Static Regeneration), c'est totalement gérable.
Une chose à noter : nous avons implémenté les balises hreflang par programmation pour le SEO. Chaque page renvoie vers toutes ses variantes de langue. C'est critique pour que Google comprenne la structure de votre site multilingue.
// app/[locale]/layout.tsx
export function generateMetadata({ params: { locale } }) {
const alternates = {
languages: Object.fromEntries(
locales.map(l => [l, `/${l}${pathname}`])
)
};
return { alternates };
}
Ce que la traduction IA se trompe
Je serais malhonnête si je disais que la traduction IA est parfaite. Voici où elle lutte de manière constante :
Jeu de mots marketing et calembours. Si votre titre est malin en anglais, l'IA le traduira soit littéralement (perdant la malveillance) soit tentera un calembour dans la langue cible qui ne tombe pas tout à fait juste. Nous avons réécrit environ 15 % des en-têtes marketing manuellement avec direction créative.
Adaptation culturelle. La traduction et la localisation ne sont pas la même chose. L'IA ne saura pas que votre étude de cas américaine sur un « prestataire 401(k) » ne signifie rien au Japon. Elle ne changera pas vos signes dollar pour la devise locale dans les exemples. Elle ne saura pas que le rouge signifie la chance en Chine mais le danger en Occident. Cela nécessite une réflexion humaine.
Précision juridique. Pour les conditions d'utilisation et les politiques de confidentialité, la traduction IA vous met 90 % du chemin. Mais le langage juridique doit être précis, et dans certaines juridictions, vous avez besoin de traductions certifiées légalement. Nous avons signalé les pages légales pour examen professionnel sur les 12 marchés où le client faisait des affaires réelles (par opposition aux 18 autres qui étaient exploratoires).
Systèmes honorifiques. Le japonais, le coréen et le thaï ont des systèmes complexes de formalité. L'IA a parfois mélangé les registres formel et informel au sein de la même page. Notre glossaire et guide de style ont aidé, mais les vérifications ponctuelles ont détecté quelques inconsistances.
Accord des genres dans les langues genrées. Le français, l'espagnol, l'allemand, l'arabe -- quand la source anglaise est neutre du point de vue du genre, l'IA doit faire des choix. Parfois, c'est incohérent. Nos vérifications automatisées ont détecté la plupart de ces derniers en comparant les marqueurs de genre sur les unités de traduction connexes.
Quand vous devriez toujours payer pour une traduction humaine
La traduction IA à 22 $ par langue est le bon choix quand :
- Vous testez de nouveaux marchés et avez besoin de vitesse plutôt que de perfection
- Votre contenu est principalement informatif ou technique
- Vous avez 10+ langues cibles (l'économie par langue se compose)
- Vous devez traduire fréquemment (articles de blog, changelogs, docs)
Payez pour une traduction humaine quand :
- La responsabilité juridique est impliquée (contrats, documents de conformité)
- La voix de marque est critique (slogans, campagnes)
- Vous êtes dans une industrie réglementée (médical, financier)
- Vous avez 1-3 langues cibles et le budget pour
- L'adaptation culturelle compte autant que la précision linguistique
Le sweet spot que nous avons trouvé pour la plupart des clients ? Traduction IA pour la majorité, examen humain pour les 10-20 % critiques. Cela porte généralement le coût total à 50-100 $ par langue au lieu de 22 $, mais avec une qualité quasi-humaine dans tous les types de contenu.
Si vous envisagez une création de site multilingue, contactez-nous -- nous avons affiné ce pipeline sur plusieurs projets et pouvons l'adapter à votre stack, que ce soit Next.js, Astro, ou un autre framework. Consultez notre page tarifaire pour voir comment nous délimitons les projets d'internationalisation.
FAQ
Comment la qualité de la traduction IA se compare-t-elle à la traduction humaine en 2025 ?
Pour le contenu informatif et technique, l'écart s'est considérablement réduit. Dans les tests en aveugle, les locuteurs natifs évaluent les traductions Claude et GPT-4o à 85-92 % de la qualité de traduction humaine pour la plupart des langues européennes et d'Asie de l'Est. L'écart est plus large pour le texte marketing créatif (70-80 %) et les textes juridiques (75-85 %). Pour les langues moins courantes comme le letton ou l'estonien, la qualité de l'IA est en fait comparable à ce que vous obtiendriez des agences de traduction humaine budgétaires, qui utilisent souvent de toute façon la traduction automatique avec édition légère.
Quel est le moyen le moins cher de traduire un site Web en 2025 ?
L'approche la moins chère est l'accès direct à l'API à des modèles comme Claude ou GPT-4o, ce qui coûte environ 0,0002-0,0005 $ par mot. Les services comme Weglot (15-50 $/mois) ou Lokalise sont plus chers par mot mais gèrent l'infrastructure pour vous. L'API Google Translate est moins cher par mot (~20 $ par million de caractères) mais la qualité est nettement inférieure aux LLM frontière. Notre approche de pipeline avec Claude nous a coûté environ 0,0003 $ par mot traduit incluant les passages d'AQ.
La traduction IA fonctionne-t-elle pour les langues de droite à gauche comme l'arabe et l'hébreu ?
Oui, mais vous devez gérer la mise en œuvre technique avec soin. La qualité de traduction pour l'arabe et l'hébreu de Claude est bonne -- notre vérification ponctuelle d'arabe a noté 8/10. La partie la plus difficile est la mise en œuvre de la mise en page RTL dans votre frontend. Les propriétés CSS logiques (margin-inline-start au lieu de margin-left) et les attributs dir="rtl" appropriés sont essentiels. Planifiez les éléments UI qui doivent être retournés.
Comment gérez-vous le SEO pour un site Web traduit en 30 langues ?
Trois choses sont les plus importantes : les balises hreflang appropriées sur chaque page, les URLs spécifiques à la locale (les sous-répertoires comme /fr/ ou /de/ fonctionnent bien), et les métadonnées traduites (titres, descriptions, balises Open Graph). Nous générons tout cela par programmation. N'oubliez pas de soumettre les sitemaps spécifiques aux locales à Google Search Console. Dans les 3 mois suivant le lancement du site en 30 langues, le client a vu le trafic organique des requêtes non-anglais augmenter de 340 %.
La traduction IA peut-elle traduire le contenu du site qui inclut le jargon technique ?
C'est en fait là que la traduction IA brille. Le jargon technique est généralement cohérent et bien défini, ce qui joue en faveur des forces du modèle. La clé est de construire un glossaire de vos termes spécifiques avec des traductions approuvées. Sans glossaire, le modèle pourrait traduire « pipeline de déploiement » de trois façons différentes sur votre site. Avec un, c'est d'une cohérence impeccable.
Combien de temps faut-il pour traduire par IA un site Web entier ?
Notre pipeline a traduit les 118 pages dans les 30 langues en environ 6 heures de temps de calcul, en exécutant des requêtes API parallèles avec limitation de débit. Le temps d'ingénierie pour construire le pipeline était d'environ 40 heures pour le premier projet. Les projets ultérieurs utilisant le même pipeline nécessitent 8-15 heures de temps d'ingénierie pour la configuration et la personnalisation, plus le temps de calcul.
Que se passe-t-il lorsque vous devez mettre à jour le contenu sur un site traduit ?
C'est là que l'approche d'unité de traduction segmentée paie énormément. Quand une page change, nous diff les unités de traduction par rapport à la version précédente. Seules les unités modifiées ou nouvelles sont re-traduites. Mettre à jour un article de blog dans les 30 langues coûte des sous et se fait automatiquement en CI/CD. Nous suivons les hachages d'unité de traduction pour savoir exactement ce qui est obsolète.
Le 22 $ par langue est-il réaliste pour tout site Web, ou seulement certains types ?
Le chiffre de 22 $ est spécifique au volume de contenu de notre projet (~73K mots) et au type de contenu (marketing et docs B2B SaaS). Vos résultats peuvent varier. Un site riche en contenu avec 500K mots pourrait coûter 100-150 $ par langue. Un site marketing simple de 10 pages pourrait coûter 3-5 $ par langue. Le coût évolue linéairement avec le nombre de mots et légèrement avec la complexité. Le coût fixe est le temps d'ingénierie pour construire ou configurer le pipeline.