Qu’est-ce que la mémoire de traduction et comment fonctionne-t-elle ?

Comment la mémoire de traduction stocke et réutilise les traductions passées, ce que signifient réellement les pourcentages de correspondance floue, et pourquoi la syntaxe des placeholders détruit silencieusement les taux de correspondance.

La mémoire de traduction ™ est une base de données de segments que vous avez déjà traduits, associés à leur texte source. Lorsqu’un nouveau texte arrive et correspond à quelque chose déjà présent dans la base, la traduction stockée est proposée pour réutilisation.

C’est toute l’idée. Sa valeur ne tient pas à une quelconque ingéniosité — elle tient au fait que le texte d’un logiciel est bien plus répétitif qu’il ne le semble en l’écrivant, et qu’un produit mature accumule une mémoire qui répond gratuitement à une large part du nouveau travail.

Comment ça fonctionne

Trois étapes, répétées indéfiniment.

1. Stocker. Chaque fois qu’une traduction est approuvée, la paire est écrite dans la base de données :

source: "Your changes have been saved"
target: "Vos modifications ont été enregistrées"
locale: fr

2. Rechercher. Lorsqu’un traducteur ouvre un segment, le système recherche dans la mémoire un texte source ressemblant au nouveau texte source, et classe les résultats par similarité.

3. Proposer. Les correspondances apparaissent à côté du segment, les meilleures en premier. Le traducteur en accepte une, en modifie une, ou les ignore.

Il n’y a rien à configurer et rien à entretenir. La mémoire se remplit comme un effet secondaire du fait de traduire, et elle s’améliore plus vous l’utilisez.

Qualité des correspondances

Les correspondances sont notées en pourcentage, et ce vocabulaire mérite d’être connu précisément, car des décisions de tarification et de flux de travail se construisent dessus.

Correspondance Signification Que faire
100 % / exacte Le texte source est identique Généralement à accepter ; vérifiez tout de même le contexte
Floue (85–99 %) Petites différences — un mot, un nombre, une ponctuation À accepter puis modifier
Floue (70–84 %) Substantiellement similaire, sensiblement différente Utile comme point de départ
Moins de 70 % Vaguement liée Généralement du bruit
En contexte / 101 % Source identique et contexte environnant identique Peut être appliquée automatiquement sans risque

Le seuil est réglable, et le compromis est réel : un seuil bas fait apparaître davantage de suggestions, y compris des faibles, un seuil haut ne fait apparaître que les correspondances fortes et cache les quasi-correspondances utiles. Les traducteurs ont tendance à se stabiliser autour de 75 % une fois qu’ils ont pris la mesure de la mémoire d’un projet particulier.

Une correspondance à 100 % n’est pas automatiquement correcte. Le contre-exemple classique est un mot unique : Open comme intitulé de bouton et Open comme statut de ticket sont la même chaîne source et se traduisent différemment dans la plupart des langues. C’est pourquoi le contexte compte, et pourquoi une correspondance en contexte — source identique et voisinage identique — est considérée comme un signal plus fort qu’une simple correspondance exacte.

Mémoire de projet et mémoire globale

La plupart des systèmes séparent la mémoire par périmètre, et cette distinction compte plus qu’il n’y paraît au premier abord.

La mémoire de projet apprend de vos propres traductions. Elle porte la voix de votre produit, votre terminologie et vos décisions. Elle est petite au départ et devient, avec le temps, la plus précieuse des deux.

La mémoire globale ou partagée agrège des traductions provenant de nombreux projets — dans le cas de WebTranslateIt, plus de 24 millions de traductions apportées par les projets qui y participent volontairement. Elle est extrêmement utile dès le premier jour, quand votre propre mémoire est vide, et pour les chaînes génériques que contient chaque application : Cancel, Settings, Password must be at least 8 characters.

La configuration sensée consiste à utiliser les deux, avec la mémoire de projet classée en premier. Votre propre traduction approuvée d’une chaîne doit toujours primer sur celle d’un inconnu, aussi bonne soit-elle.

WebTranslateIt permet aussi de faire pointer un projet vers la mémoire d’un autre projet, ce qui est le mécanisme permettant de partager une mémoire au sein d’une famille de produits — une application web, une application mobile et un site marketing qui devraient tous utiliser les mêmes mots.

Ce qui détruit silencieusement les taux de correspondance

Voici un problème invisible jusqu’à ce que quelqu’un le mesure. Ces trois chaînes sont la même phrase :

Android   I have %1$s dogs
iOS       I have %@ dogs
Rails     I have %{count} dogs

Pour une mémoire qui fait une comparaison exacte de chaînes, ce sont trois entrées sans rapport. Traduisez la chaîne Android en japonais, et la chaîne iOS ne montrera toujours aucune correspondance. Un produit multiplateforme peut traduire les mêmes phrases trois fois de suite sans que rien ne paraisse anormal dans aucun rapport.

La solution est la normalisation : retirer les placeholders et décoder les entités HTML avant la comparaison, afin que les trois se réduisent à I have dogs et se correspondent entre elles. Lorsqu’une correspondance est réutilisée, les placeholders sont adaptés à la syntaxe utilisée par le projet de destination, de sorte qu’un %{count} Rails ressort sous la forme d’un %@ iOS.

WebTranslateIt fait cela automatiquement. Les correspondances normalisées sont étiquetées comme telles et classées après les correspondances exactes, si bien qu’une correspondance exacte gagne toujours ; la mémoire existante a été réindexée rétroactivement, si bien que cela s’applique aussi aux traductions déjà en place, pas seulement aux nouvelles.

Si vous évaluez des plateformes et que votre produit s’étend sur plus d’une, demandez précisément comment la mémoire gère les variations de placeholders. C’est la différence entre une mémoire qui fonctionne sur l’ensemble de votre stack et une mémoire qui ne fonctionne qu’à l’intérieur de chaque silo. L’aide-mémoire des formats de placeholders couvre les syntaxes concernées.

D’où vient réellement la valeur

Trois sources, à peu près dans l’ordre d’importance :

L’itération. Le texte d’un logiciel est révisé constamment. Changer « Your changes have been saved » en « Your changes were saved » constitue une correspondance floue élevée, pas une nouvelle traduction. Les produits publiés chaque semaine tirent la majeure partie de leur valeur de là.

La répétition entre les surfaces. Le même message apparaît dans l’application web, l’application mobile, la réponse d’erreur de l’API et l’e-mail de notification. On le traduit une fois.

La cohérence. Sous-estimée. Une mémoire signifie que la même phrase source obtient la même traduction à chaque fois, sans que personne n’ait à se souvenir de ce qui a été décidé le trimestre dernier. C’est cette cohérence qui donne à une interface l’impression d’être cohérente dans une langue que vous ne lisez pas.

Limites

Elle ne comprend rien. Elle fait correspondre du texte. Une correspondance élevée avec un sens subtilement différent est réellement dangereuse, car elle paraît sûre — c’est pourquoi les correspondances floues devraient être modifiées plutôt qu’acceptées telles quelles.

Elle hérite de vos erreurs. Une mauvaise traduction approuvée une fois sera proposée pour toujours. Les mémoires ont besoin d’un nettoyage occasionnel, surtout après un changement de terminologie.

Elle ne vaut rien le premier jour pour votre propre contenu, ce qui explique exactement pourquoi une mémoire globale partagée est précieuse au début, et moins par la suite.

Elle ne remplace pas une base terminologique. La mémoire fonctionne au niveau du segment ; une base terminologique fonctionne au niveau du mot et impose la cohérence pour des termes qui apparaissent à l’intérieur de phrases par ailleurs sans rapport entre elles. Elles résolvent des problèmes voisins, et vous voulez les deux.

La garder en bonne santé

Une mémoire est une base de données qui ne fait que grossir, et les bases de données négligées se dégradent. Trois habitudes suffisent :

Nettoyez après un changement de terminologie. Renommer une fonctionnalité invalide chaque segment stocké qui la mentionne. Ces segments continueront d’être proposés comme des correspondances de haute confiance portant l’ancien nom.

Ne laissez pas entrer de la sortie machine non relue. Si de la TA brute est écrite dans la mémoire, elle en ressort plus tard indiscernable d’une traduction humaine que quelqu’un a approuvée. Gardez les deux séparables.

Élaguez périodiquement les doublons et quasi-doublons. Plusieurs variantes stockées du même texte source signifient que le traducteur choisit entre vos propres décisions passées, ce qui est exactement l’incohérence que la mémoire était censée prévenir.

Importer une mémoire existante

Si vous avez un historique de traduction dans un autre système, exportez-le en TMX et importez-le. Dans WebTranslateIt, cela signifie créer un projet, configurer les paires de langues, téléverser le TMX, puis faire pointer les ressources de traduction de votre projet de travail vers celui-ci.

Faites cela avant de démarrer un nouveau projet plutôt qu’après. Une mémoire importée six mois après coup a manqué les six mois de travail qu’elle aurait accélérés.

Et vérifiez le chemin d’export de toute plateforme que vous adoptez. Votre mémoire de traduction est un actif que vous avez payé pour construire, et elle doit être portable aussi bien à la sortie qu’à l’entrée.

Frequently asked questions

Qu’est-ce que la mémoire de traduction ?
La mémoire de traduction est une base de données de segments déjà traduits, associés à leur texte source. Lorsqu’un nouveau texte correspond à quelque chose déjà traduit, la traduction stockée est proposée pour réutilisation. C’est une recherche dans votre propre travail passé, pas un modèle qui génère du nouveau texte.
Quelle est la différence entre la mémoire de traduction et la traduction automatique ?
La mémoire de traduction récupère une traduction qu’un humain a déjà rédigée et approuvée. La traduction automatique en génère une nouvelle à partir d’un modèle. La mémoire vous donne une réponse connue pour être correcte quand elle trouve une correspondance, et rien quand elle n’en trouve pas ; la TA répond toujours, avec une qualité variable.
Que signifie une correspondance à 100 % ?
Le texte source est identique à un segment déjà présent dans la mémoire. Cela vaut néanmoins un coup d’œil, car un texte identique peut nécessiter des traductions différentes selon le contexte — une correspondance à 100 % sur le seul mot Open ne vous dit rien sur le fait que la traduction stockée concernait un bouton ou un adjectif.
Qu’est-ce qu’un fichier TMX ?
TMX (Translation Memory eXchange) est le format d’échange XML standard pour les mémoires de traduction. C’est ce qui permet de déplacer une mémoire entre systèmes, et c’est pourquoi il faut vérifier que toute plateforme que vous adoptez sait l’exporter — la mémoire est un actif que vous avez payé pour construire.

Keep reading

Translate your app without the spreadsheet round-trip

WebTranslateIt reads the file formats and placeholder syntax described on this page, validates them as translators work, and syncs the results straight back into your repository.