Relecture humaine
La plupart de vos contenus peuvent être publiés dès que le moteur les renvoie. Mais pas tous. Une mention réglementaire, une consigne médicale, un titre qui porte votre marque — dans ces cas-là, vous voulez qu'une personne lise la traduction et la valide avant sa mise en ligne, pas après la plainte d'un client.
D'ordinaire, faire entrer un humain dans un flux automatisé est fastidieux : garder la requête ouverte pendant qu'une personne relit, construire votre propre file de relecture, ou brancher à la main l'API d'un prestataire de traduction. Cette étape gère tout cela dans le job lui-même. Quand humanEdit est activé, le job asynchrone exécute le moteur, puis se met en pause en attendant une personne — votre équipe ou un professionnel externe — avant de reprendre avec sa version, qui est ensuite transmise à toutes les étapes suivantes.
Elle s’exécute après Rephrase et avant Post-edit dans le pipeline de localisation et, comme chaque étape, s’applique uniquement aux tâches créées via l’API de localisation asynchrone. Vous découvrez le pipeline ? Commencez par la vue d’ensemble.
Sur cette page
- Comment fonctionne la pause
- Relecture interne
- Autorisations
- Relecture externe
- Seuil de qualité
- Délai d'expiration
- Activer l'étape
Comment fonctionne la pause#
Après l’étape de traduction principale — et après Rephrase, si cette étape est activée — la tâche confie la traduction de l’IA à une personne pour relecture. Le relecteur la lit, puis soit l’approuve telle quelle, soit soumet une version modifiée. Ce n’est qu’ensuite que la tâche reprend. Le résultat humain — approuvé ou modifié — devient l’entrée de toutes les étapes suivantes et, au final, le outputData de la tâche.
L'objection évidente à l'idée de mettre un job en pause pendant quelques minutes, plusieurs heures ou une journée entière, c'est le coût : une requête maintenue ouverte consomme des ressources alors qu'il ne se passe rien. Ce n'est pas comme ça que fonctionne cette étape.
L'attente est pilotée par événements, pas par une connexion maintenue ouverte
Le workflow reprend lorsqu'un événement se produit — un relecteur qui soumet depuis le tableau de bord (Relecture interne) ou un callback du prestataire de traduction (Relecture externe). Il n'y a ni polling en boucle serrée, ni connexion maintenue ouverte. Résultat : un long délai d'expiration ne consomme aucune ressource de calcul en arrière-plan. Un job peut attendre 48 heures une intervention humaine exactement comme il attend un modèle : il est en attente, pas en train de tourner.
Deux modes de relecture sont disponibles, à choisir par moteur. La seule différence tient à la personne qui lit : le comportement de pause, de reprise et de transmission du résultat est strictement identique.
Relecture interne#
Votre équipe relit les traductions directement dans le tableau de bord Lingo.dev. Les relectures en attente apparaissent dans la file d’attente (/orgs/<org-id>/queue) sous forme d’éléments Relecture humaine, et les relecteurs sont avertis lorsque de nouveaux éléments arrivent. Un relecteur ouvre un élément, modifie les clés qui en ont besoin, puis clique sur Approuver telle quelle ou, dès qu’une modification est apportée, sur Approuver avec modifications — le bouton les décompte, comme dans Approuver avec 2 modifications. La tâche reprend ensuite avec ce résultat.
Il n’y a ni attribution ni verrouillage. Une relecture ouverte reste dans un pool unique que chaque relecteur peut voir et traiter.
La Relecture interne nécessite le plan Enterprise. Avec un plan qui l’inclut, un nouveau moteur démarre sur Relecture interne ; avec un plan qui ne l’inclut pas, il démarre sur Relecture externe, et l’option Relecture interne affiche un badge Enterprise. Choisissez-la lorsque votre équipe dispose en interne de l’expertise linguistique nécessaire et que vous voulez garder un contrôle total sur la formulation finale, sans faire intervenir de tiers.
Autorisations#
La relecture interne n’est pas ouverte à tout le monde dans l’organisation : l’accès à la file de relecture est soumis à autorisation. Ainsi, une traduction en cours de relecture n’est visible que par les personnes auxquelles vous avez accordé l’accès. Un·e administrateur·ice de l’organisation attribue cet accès via les rôles (Settings → Roles) :
| Autorisation | Ce que cela permet |
|---|---|
Relire les traductions (engine:review_translations) | Voir les éléments Relecture humaine dans la file d’attente, les modifier et les approuver tels quels ou avec modifications |
Gérer les relectures (org:manage_reviews) | Historique et statistiques des relectures internes. Sans cela, les relectures traitées restent masquées dans la file d’attente |
Les deux autorisations sont volontairement distinctes. Un relecteur n’a besoin que de Relire les traductions — cette seule autorisation couvre l’ensemble du travail : modifier, approuver telle quelle, approuver avec modifications. Gérer les relectures est destiné à la personne qui supervise l’opération ; cela ajoute l’historique des relectures à l’échelle de l’organisation, mais n’inclut pas à lui seul l’accès à la file d’attente. Accordez les deux à une personne responsable qui relit et produit des rapports ; accordez seulement la première à une personne qui travaille uniquement dans la file d’attente.
Relecture externe#
Lorsque vous n'avez pas de relecteurs en interne pour une langue, la traduction est envoyée à un traducteur professionnel qualifié via un prestataire externe. Le job se met en pause exactement de la même manière, puis reprend lorsque le prestataire renvoie la traduction modifiée. Rien ne change dans votre code : la différence, c'est qui relit la chaîne, pas la manière dont le job se comporte.
Il n’y a aucun niveau à sélectionner — la place de marché évalue directement le traducteur. La Relecture externe est facturée au mot.
Une relecture externe apparaît aussi dans la file d’attente ; une fois ouverte, elle indique un Traducteur qualifié comme relecteur. Une personne disposant de Relire les traductions peut l’ouvrir et la reprendre : choisissez Approuver telle quelle ou Approuver avec modifications, et la tâche s’arrête là au lieu d’attendre le traducteur. La confirmation Reprendre cette relecture indique le coût avant validation — la reprise est gratuite uniquement tant qu’aucun traducteur n’a commencé ; dès qu’un traducteur a commencé, ses frais s’appliquent, que vous utilisiez ou non son travail.
Autant être parfaitement clair : la relecture externe implique un vrai traducteur humain de l'autre côté, avec les délais et les coûts que cela suppose. Ce n'est pas un modèle plus rapide. Utilisez-la quand le jugement humain est précisément ce que vous recherchez — textes réglementés, contenus à forts enjeux — et réservez le parcours 100 % IA à la majeure partie de vos contenus qui n'en ont pas besoin.
Seuil de qualité#
Toutes les traductions n’ont pas besoin d’une intervention humaine. Définissez Seuil de qualité (1–100) dans les paramètres de Relecture humaine, et un évaluateur IA attribuera un score à chaque traduction avant son passage en relecture. Si le score atteint ou dépasse le seuil, la traduction est livrée sans intervention humaine et l’étape humanEdit est enregistrée comme skipped ; en dessous, la traduction passe en relecture comme d’habitude. Laissez le champ vide pour tout relire. Dans la configuration, il s’agit de qualityThreshold sur humanEdit.
Une traduction livrée de cette manière n’a pas de résultat humain ; Post-edit ne s’exécute donc pas dessus.
Délai d'expiration#
Une étape humaine introduit un risque que les étapes IA n'ont pas : l'humain peut ne jamais répondre. Le relecteur est en vacances, le prestataire a du retard, l'élément est oublié. Sans garde-fou, le job attendrait indéfiniment.
Le temps d’attente reste donc maîtrisé. Vous définissez combien de temps le workflow attend le résultat humain — Délai d’expiration, en heures, dans les paramètres de Relecture humaine ; timeoutHours dans la configuration. Cela s’applique aux deux modes de relecture. Si le délai expire sans réponse, l’étape est marquée skipped et la tâche continue avec la traduction de l’IA comme résultat final. La valeur par défaut est de 48 heures. Dans la file d’attente, une relecture ayant expiré affiche Clôturée sans décision.
Il faut le dire clairement : en cas d'expiration, vous publiez la traduction IA sans relecture humaine. C'est le bon repli pour la plupart des contenus — mieux vaut une traduction publiée qu'un job bloqué indéfiniment — mais c'est un vrai compromis. Pour les contenus qui exigent impérativement une validation humaine, prévoyez un délai généreux et déclenchez une alerte en cas de saut ; pour les contenus où la relecture est un plus, un délai court permet au pipeline d'avancer.
Le délai d'expiration s'applique à l'étape, pas au job
Le délai d'expiration régit uniquement le temps pendant lequel cette étape attend une intervention humaine. Il est indépendant de la durée du reste du job. Comme l'attente est pilotée par événements, un délai long n'a qu'un seul coût si le relecteur tarde : plus de latence avant le résultat final, jamais plus de calcul en arrière-plan.
Activer l'étape#
humanEdit se configure comme toutes les étapes du pipeline : avec une valeur par défaut au niveau du moteur dans l'onglet Pipeline du moteur, éventuellement remplacée par requête. Le modèle complet à deux niveaux est détaillé dans Configurer le pipeline ; pour cette étape, cela prend la forme suivante :
{
"humanEdit": {
"enabled": true,
"provider": "internal",
"tier": "standard",
"timeoutHours": 48,
"qualityThreshold": 85
}
}provider sélectionne le mode — internal pour votre équipe, external pour un traducteur professionnel via la place de marché externe. tier est facultatif et n’accepte que standard. timeoutHours reprend la limite définie dans Délai d’expiration, et le qualityThreshold facultatif (1–100) correspond à celui de Seuil de qualité. Pour remplacer ce réglage pour un seul envoi, transmettez ce bloc dans pipelineConfig lors de l’appel create ; si vous l’omettez, la tâche hérite du paramètre du moteur.
Lorsque l'étape s'exécute, elle s'enregistre sur le job sous stepId: "humanEdit" avec le statut completed, failed ou skipped — le même enregistrement d'étape que produit chaque étape. La lecture de ces enregistrements est expliquée dans Observer les exécutions du pipeline.
Une modification humaine peut s'écarter des règles de votre moteur
Un traducteur humain peut formuler certains passages d’une manière qui entre en conflit avec votre glossaire, votre voix de marque ou vos règles — il traduit avec justesse, sans pour autant mémoriser votre configuration. Pour réaligner automatiquement les modifications humaines sur les règles de votre moteur, activez l’étape suivante, évaluation IA — Post-edit dans l’onglet Pipeline. Elle ne s’exécute qu’après une étape humaine ayant réellement produit un résultat.