Une faute de frappe dans votre source, c’est une faute que vous n’avez qu’une seule occasion de corriger — avant qu’elle ne se multiplie. Une tâche asynchrone diffuse une charge utile source unique vers chaque langue cible, et chaque langue traduit le texte qu’elle reçoit. Résultat : une faute d’orthographe, un mot manquant ou une phrase bancale dans la source ne reste pas un problème isolé. Cela devient un problème en allemand, le même en français, et le même dans toutes les autres langues traitées par la tâche — chacune nécessitant ensuite sa propre correction.
La pré-édition IA avant localisation (preEdit) comble ce manque à la source. C’est la première étape du pipeline de localisation asynchrone : avant que l’étape principale de traduction ne s’exécute, un agent IA relit la charge utile source et corrige les fautes de frappe, les erreurs de grammaire et d’orthographe. C’est cette version nettoyée qui est traduite — vous corrigez donc une seule fois, avant diffusion, au lieu de retrouver la même erreur dans une douzaine de résultats.
Comme il s’agit d’une étape du pipeline asynchrone, elle ne s’exécute que sur les tâches créées via l’API de localisation asynchrone. Le point de terminaison synchrone /localize n’exécute que l’étape principale de traduction et ignore les paramètres du pipeline.
Ce que fait l’étape#
preEdit agit sur la source, pas sur la traduction. Un agent IA lit votre charge utile source et la réécrit pour supprimer les erreurs de surface — fautes de frappe, grammaire, orthographe — puis transmet le texte corrigé à l’étape principale de localisation. Chaque langue cible traduit à partir de cette source nettoyée.
Son périmètre est volontairement restreint, et c’est précisément le but. Il s’agit d’un passage de nettoyage rédactionnel, pas d’une réécriture : il cible le bruit de surface qui rend le texte source ambigu pour un modèle de traduction, afin que le modèle consacre son attention à traduire plutôt qu’à deviner le sens d’une phrase mal tournée. Une source plus propre produit des traductions plus cohérentes d’une langue à l’autre — parce que chaque langue part du même texte corrigé, au lieu de laisser chaque modèle interpréter indépendamment la même erreur.
Pour obtenir une sortie idiomatique et naturelle — en réécrivant la traduction elle-même pour qu’elle sonne comme si elle avait été rédigée par un copywriter natif — il faut passer par une autre étape. Voir Reformuler pour un texte naturel. preEdit nettoie l’entrée ; rephrase peaufine la sortie.
Cela ne peut pas faire empirer la tâche#
La première question qu’un ingénieur rigoureux se pose à propos d’une étape IA qui modifie son contenu avant traduction est la bonne : que se passe-t-il si cette étape se trompe, ou ne s’exécute pas du tout ?
preEdit est une étape non critique. Si l’appel de pré-édition échoue ou expire, la source d’origine est transmise telle quelle et la tâche continue vers l’étape de traduction exactement comme si l’étape était désactivée. Un échec ici vous prive du nettoyage sur cette tâche — pas de la tâche elle-même. La traduction est tout de même livrée.
Que se passe-t-il si la pré-édition échoue ou expire ?
La tâche n’échoue pas. Les étapes non critiques reviennent à leur entrée : en cas d’échec de preEdit, la source non modifiée est traduite telle quelle, et la tâche va jusqu’au bout. Le statut de la tâche devient completed_with_warnings, l’étape preEdit est enregistrée comme failed, et la raison est ajoutée au tableau warnings de la tâche — vous pouvez donc constater ce qui s’est passé sans que cela bloque la livraison. La lecture de ces enregistrements d’étape est expliquée dans Observer les exécutions du pipeline.
En clair, le pire scénario est simple : activer preEdit ne peut pas faire échouer une tâche qui aurait autrement réussi. Au pire, cela n’apporte rien sur une tâche donnée et s’efface discrètement.
Ce que ce n’est pas#
Autant le dire clairement, précisément au moment où l’on pourrait vouloir qu’il fasse davantage : preEdit est best-effort, et se limite à un nettoyage rédactionnel des erreurs de surface — ce n’est ni un correcteur qui comprend votre domaine, ni un vérificateur de faits qui valide vos affirmations. Il corrige les fautes de frappe, de grammaire et d’orthographe. Il ne vérifie pas qu’un prix est exact, qu’un nom de produit est à jour, ni qu’une phrase dit bien ce que vous vouliez dire. Si votre source est factuellement erronée, preEdit nettoiera fidèlement la grammaire d’une phrase fausse et la traduira proprement dans chaque langue.
Pour les termes qui doivent rester exactement tels qu’écrits, quel que soit le passage de l’IA — noms de produits, marques, identifiants de code — verrouillez-les à la source. Marquez-les comme non traduisibles dans le glossaire de votre moteur, ou, pour des champs structurels dans une charge utile donnée, excluez-les avec lockedKeys. Là, vous avez des garanties sur les données ; preEdit n’offre qu’un nettoyage best-effort autour de celles-ci.
Quand l’activer#
preEdit mérite ce passage supplémentaire lorsque votre source risque de contenir du bruit, et devient redondant lorsque votre source est déjà propre.
- Activez-la lorsque le contenu source est généré par les utilisateurs, extrait automatiquement, récupéré par scraping, issu d’un OCR, ou plus largement rédigé en dehors d’un processus éditorial — tous les cas où les erreurs de surface sont fréquentes et où leur multiplication d’une langue à l’autre a un coût réel.
- Désactivez-la pour un contenu soigné ayant déjà fait l’objet d’une relecture éditoriale ou humaine. Si la source est propre, l’étape n’a rien à corriger, et vous paierez un passage d’IA qui n’a rien à faire. Chaque étape activée ajoute une étape au traitement de la tâche et une ligne de plus à son coût — utile lorsque la qualité de la source est incertaine, superflu lorsqu’elle ne l’est pas.
Tout l’arbitrage tient là : investir un passage en amont, sur les tâches dont la qualité de la source est incertaine, pour corriger une seule fois avant diffusion — plutôt que de corriger la même erreur dans chaque langue après livraison.
Vous activez preEdit dans l’onglet Pipeline du moteur, où il s’applique à chaque tâche asynchrone acheminée vers ce moteur, ou vous le surchargez pour un envoi unique avec pipelineConfig dans la requête de création de tâches. Les deux niveaux, ainsi que la façon dont une étape omise hérite de la valeur par défaut du moteur, sont expliqués dans Configurer le pipeline.
