Tradauto, pourquoi, comment

Il existe déjà des solutions de traduction automatique facile à mettre en œuvre.
Alors pourquoi avoir créé un plugin de traduction automatique ?
Comment le plugin réalise t’il les traductions ?

Les solutions actuelle de traduction automatique

Il existe actuellement plusieurs solutions de traduction en ligne dont celles de Microsof, Google, Bing, etc. En accédant à un site Web, on copie-colle son texte dans un champs, on choisit les langues cible et originale, on clique et HOP on obtient le résultat de la traduction.

Ces solutions proposent toutes la possibilité de traduire automatiquement votre site, moyennant l’insertion d’un petit bout de code dans vos pages, appelé plugin ou widget selon les cas. L’insertion d’un widget dans un squelette SPIP est très facile. C’est juste un petit bout de code HTML/JS à copier-coller où vous voulez dans votre squelette.

Dans la partie publique du site, vous voyez alors un formulaire permettant de choisir la langue cible associé à un bouton de traduction. Vous pouvez même choisir une langue cible a priori, ce qui permet d’afficher une traduction sans que le visiteur n’ai à faire un choix.

Oui mais...

Cette solution présente un énorme inconvénient : les pages traduites sont ignorées par les moteurs de recherche. Elles ne seront jamais proposées dans les résultats de requêtes.

Pourquoi les pages traduites avec un widget sont invisibles sur le web ?

Avec un widget, il faut comprendre que c’est la page originale qui est envoyée au navigateur de votre visiteur, pas le résultat de la traduction. La traduction est faite ensuite, après chargement, en ajax c’est-à-dire en mode « client ». Votre visiteur ne s’en rend pas compte, sauf si il a désactivé le javascript sur son navigateur.

Pour que votre site apparaisse dans un résultat de recherche, il faut que ses pages soient indexées par le moteur de recherche (Google, Yahoo, Bing, etc.). Pour cela, un robot passe régulièrement sur votre site. Il lit le contenu de vos pages et ajoute ou pas les pages dans son indexe.

Le problème avec une page traduite avec un widget, c’est que le robot accède au contenu original non-traduit. Le robot n’attend pas le résultat de la traduction en AJAX. Et pour cause, les robots ignorent le javascript. La page sera donc indexée mais dans la langue originale.

Que faire pour indexer des pages traduites ?

Il faut que le contenu envoyé au navigateur de vos visiteurs, et donc aux robots, soit traduit en amont.

Heureusement, les services de traduction automatique sont aussi accessibles par des API (AJAX, PHP, SOAP, etc.) ; ce qui permet de lancer des requêtes de traduction à partir d’un serveur, ou d’une interface spécifique.

D’où l’idée de développer le plugin Tradauto.

Deux approches étaient possibles :
-  Faire une traduction à chaque calcul d’un squelette.

  • Avantages :
    • simplicité pour le webmaster,
    • la traduction suit les évolutions de l’article original.
  • Inconvénients :
    • on ne peut pas retoucher la traduction,
    • on peut vite atteindre le quota de traduction autorisée par le service,
    • en cas d’indisponibilité du service de traduction => le site retourne en mode non-traduit ce qui peut chambouler votre positionnement dans les moteurs de recherche et décevoir vos visiteurs.

-  Faire une traduction en mode Édition et sauvegarder le contenu en base.

  • Avantages :
    • on peut corriger la traduction automatique ou apporter des spécificités selon les langues.
  • Inconvénients :
    • si l’article dans la langue originale évolue, l’article traduit lui n’évolue plus.

Les inconvénients de la première approche nous semblant rédhibitoires, on a choisi la deuxième.

Et techniquement

Le plugin insère le formulaire (sélecteur de langue + bouton Traduire) dans tous les formulaires d’édition de l’espace privé. Donc tous les objets éditoriaux bénéficient potentiellement du service de traduction.

Du code javascript est inséré dans le formulaire. Tous les traitements sont donc faits en mode client sur votre navigateur. Javascript doit donc être activé. Le code JS analyse la page à la recherche de balise INPUT de type text et de TEXTAREA. Les requêtes de traduction, en AJAX, porteront uniquement sur le contenu de ces champs.

Le choix du service de traduction

Comme il a été dit plus haut, il existe plusieurs services de traduction en ligne, accessibles avec des API.

Jusqu’en 2011, le service avec les API Google était gratuit jusquà 1 millions de caractères traduits mensuellement. Désormais, le service est payant.

Je me suis donc tourné vers le service Microsoft Translator qui est gratuit jusqu’à 2 millions de caractères par mois.

L’aspect qualitatif est aussi à prendre en compte. Car ces services ne proposent pas tous la même qualité de traduction. Mais après quelques tests, j’ai constaté que le service Microsoft Translator produit un résultat équivalent, voir légèrement supérieur, à celui de Google. Bien sûr, cela peut évoluer à l’avenir car les algorithmes sont en constante amélioration. De plus, je n’ai pas mené de test sur un nombre significatif d’échantillon. Donc n’en concluez pas que Microsoft > Google.

En cas d’évolution des conditions d’utilisation du service de Microsoft, le plugin Tradauto pourra évoluer pour aller dans le sens des économies et/ou de la qualité, et pourquoi pas proposer l’accès à différents services de traduction.

A propos de la qualité des traductions automatiques

Il faut le reconnaitre, les résultats de traduction automatique ne sont pas toujours de bonne qualité. On obtient parfois des résultats « comiques ». Vous devrez donc vérifier la traduction et éventuellement retoucher un peu pour obtenir un résultat correspondant à vos attentes.

Cela dit, je suis souvent bluffé par la qualité du résultat. On a parfois même l’impression que l’algorythme comprend le texte. Enfin, les algorithmes de traduction ne cessent d’évoluer. Les résultats seront donc meilleurs de jour en jour.

En tous cas, si la qualité n’est pas la hauteur, Tradauto vous permettra de faire un premier dégrossi que vous reprendrez ensuite à la mano. Le gain de temps est alors loin d’être négligeable.

D’autre part, vous pouvez aussi effectuer une traduction automatique sans post-correction, puis constater comment le traffic évolue sur votre nouveau site traduit. En fonction de cela, vous pourrez décider de confier une relecture corrective à un traducteur professionnel ou d’en rester là.

Discussion

Aucune discussion

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom