Diviser les grands articles pour une traduction réussie

J’utilise le plugin Traducteur avec le service Microsoft. Si le message est trop long, il ne peut pas être traduit et l’erreur suivante s’affiche :

Ce message est trop long pour être traduit par le traducteur.

Pourriez-vous s’il vous plaît implémenter une fonctionnalité de traduction par paragraphe pour contourner ce problème ?

2 « J'aime »

C’est une partie normale de Google Translate et je crois que la limite de mots est d’environ 500.

Si vous obtenez régulièrement un contenu plus volumineux que cela, je vois quelques options :

  1. Analyser manuellement le contenu pour extraire des blocs de texte inférieurs à 500 mots (ou quelle que soit la limite).
  2. Utiliser une autre API de Google dédiée à la traduction de documents (je ne suis pas certain, mais je pense qu’ils en ont une ; vous devrez vous renseigner auprès d’eux).
  3. Utiliser un autre site proposant la traduction de documents et espérer qu’ils exposent des API.

N’oubliez pas de nous dire ce qui a fonctionné.

J’utilise l’API Microsoft, pas Google.
Il semble que Microsoft impose une limite de 10 000 caractères par requête : Service limits - Translator - Foundry Tools | Microsoft Learn

Je suppose que la solution la plus simple serait de diviser le message par paragraphes (“\r\n\r\n” ou

), en supposant qu’aucun paragraphe ne dépasse 10 000 caractères ?

1 « J'aime »

Je n’ai pas encore utilisé Microsoft Translate, donc vous avez une longueur d’avance sur ce point-là — bien que je soupçonne que, théoriquement, les méthodes seraient les mêmes.

J’aime bien votre idée de parser les sauts de paragraphe, mais je ne suis pas sûr qu’on puisse supposer que chaque document utilise des fins de ligne CR/LF. Les systèmes de type Unix n’utilisent que le caractère LF. Les anciens Mac n’utilisaient que le caractère CR. Windows utilise les deux. D’autres documents pourraient utiliser un octet nul comme caractère de fin de ligne.

Unicode pose ses propres problèmes puisque chaque caractère fait deux octets.

Solution possible : Examiner la fin de ligne dans la première ou les deux premières phrases, stocker cette valeur, puis convertir toutes les fins de ligne en “\n” avant de parser le document. Une fois le document traité, vous pourriez automatiquement rétablir le type de fin de ligne approprié.

Une méthode consisterait à parcourir le texte vers l’avant jusqu’à atteindre 10 000 mots, puis à revenir en arrière pour trouver un saut de paragraphe. Placer un pointeur de tête au début du bloc actuel, parcourir vers l’avant, et lorsque vous trouvez le dernier saut de paragraphe avant les 10 000 mots, placer un pointeur de queue. Découper ce bloc, le traduire, le déplacer dans le document de résultat, déplacer le pointeur de tête à la position du pointeur de queue, et continuer.

==============================

En passant, les logiciels de traduction peuvent être épouvantables car, souvent, la traduction est extrêmement sensible au contexte, contient de l’argot ou utilise du jargon. De même, les termes techniques ou les mots spécifiques à un métier ou à une compétence — qui ne devraient pas être traduits dans de nombreux cas — sont horriblement déformés. Les documents juridiques, médicaux et techniques/ingénierie sont des classiques.

J’ai soumis un document médical complexe (le compte rendu opératoire d’une chirurgie cérébrale) à deux traducteurs différents — Google et Yandex — pour le traduire en russe. Le résultat des deux traductions ressemblait davantage à une mauvaise lasagne qu’à un document lisible !

@jharris1993, je suppose que vous me proposez de mettre en œuvre cette fonctionnalité. Malheureusement, je n’ai pas d’expérience avec Ruby, et cela prendrait beaucoup plus de temps que pour une personne expérimentée.
Bien sûr, je pourrais bricoler une solution, mais elle ne serait pas fusionnée.

Sur mon forum, la traduction la plus demandée est du russe vers l’anglais, pour des publications techniques. Microsoft fait un très bon travail dans ce domaine.

1 « J'aime »

Superbes beanies !

De quel forum s’agit-il, je vous prie de me le dire. S’il peut traduire de l’anglais vers le russe, je pourrais bien lui soumettre mon prochain document long et complexe !

La traduction est effectuée avec le plugin discourse-translator. J’ai cru avoir créé ce sujet dans la catégorie des plugins, mais il est resté sans catégorie.

1 « J'aime »