1 082 traductions contenaient un mot dans un alphabet incorrect. Nos contrôles les avaient toutes validées.
Langues
Le 31 octobre, nous avons trouvé une phrase hongroise sur l’un de nos sites contenant des mots chinois au milieu. Nous avons cherché dans les traductions enregistrées de tous les sites que nous exploitons des lettres n’appartenant pas à leur langue et avons trouvé 1 082 traductions de ce type, dont 581 sur des pages publiées. Chacune avait passé nos contrôles.
Ce que nous avons trouvé
Tout cela a été écrit par les modèles locaux qui traduisent nos sites, et il s’agit toujours de la même erreur : un mot ou deux dans une autre langue. À partir des traductions enregistrées, et de celles refusées depuis :
- Du chinois dans d’autres langues : « they are » traduit par 它们是 au milieu d’une phrase thaïlandaise ; le mot chinois pour « track », 跟踪, avec une terminaison hongroise (« támadók跟踪ására ») ; des mots similaires en polonais et en grec.
- Du russe dans du grec, de l’arménien, de l’hébreu et du slovène : « full house » en grec est devenu « φουλ хаус », le deuxième mot étant en cyrillique.
- Lettres trompeuses : un « о » ou un « а » cyrillique à la fin d’un mot finnois ou tchèque. Aucun lecteur de la page ne le remarquerait ; un moteur de recherche ou un lecteur d’écran le ferait.
- Scripts voisins : une lettre bengalienne dans un mot kannada, du devanagari dans du kannada.
- Des lignes entières en thaï sur des pages khmères : les titres, les libellés et les cellules de tableaux sur les pages khmères de deux sites étaient simplement écrits en thaï.
Notre boutique avait sept lignes de ce type. Dans l’une d’elles, « planted values » est devenu « valori植入 » en roumain.
Pourquoi les contrôles les ont validées
Le contrôle de script vérifiait si au moins 45 % des lettres d’une traduction étaient dans le script de sa langue. Cela détecte l’anglais laissé en place, ce pour quoi il a été conçu. Deux lettres chinoises dans une phrase hongroise de cent lettres ne modifient pas la proportion, et une seule lettre cyrillique la modifie encore moins.
Le texte court avait une règle différente. Pour moins de 25 lettres d’anglais, le contrôle vérifiait seulement que la réponse n’était pas restée en anglais. Une cellule de tableau khmère écrite en thaï ne contient aucun anglais, elle a donc été validée.
La règle qui les détecte
Une lettre appartenant à un script que la langue n’utilise pas, et que la source anglaise ne contient pas, est une erreur. Trois exceptions empêchent la règle de crier au loup :
- Les lettres latines sont toujours autorisées : les noms de marque, le code et les unités apparaissent dans toutes les langues.
- Le chinois, le japonais et le coréen ne sont pas vérifiés, car le japonais mélange kana et kanji et le coréen peut utiliser des hanja.
- Le serbe et le pendjabi, chacun écrit dans deux écritures, sont vérifiés uniquement pour les caractères chinois, japonais et coréens.
Nous avons appliqué la règle à tout ce que nos sites avaient stocké, et chaque ligne signalée que nous avons lue était erronée. Depuis le 31 octobre, elle a refusé 1 652 traductions au moment de leur création, dont 1 549 en khmer : le modèle n'a pas cessé d'écrire du thaï pour du khmer, mais il est désormais sollicité à nouveau au lieu d'être publié.
Nettoyage
Les traductions stockées ne sont revérifiées que lorsque leur langue est retraduite, aussi chaque langue concernée a-t-elle été retraduite : 61 d'entre elles sur onze sites. Deux lignes sont revenues avec la même erreur une seconde fois : la ligne roumaine « valori植入 » et une ligne grecque contenant 面向. Nous avons rédigé ces deux lignes à la main. Le 2 novembre, aucune de nos pages publiées ne contenait de caractère d'une autre écriture.
Où réside la règle désormais
Elle se trouve dans translation-checks 1.1.0, gratuit sur GitHub, à côté d'un nouveau contrôle qui vérifie que chaque nombre revient et sait que « 3 million » est 300万 en japonais. Exécutés sur les 568 574 traductions acceptées de nos sites, les nouveaux contrôles n'ont déclenché aucune fausse alerte. Polyglot 1.1.0 les embarque également. La première fois où nos contrôles ont posé problème est décrite dans une note précédente.