dimanche 12 juin 2011

Google translate : comment contrôler la traduction en ligne de commande

Translate.google est un service de traduction en ligne comme il existe d'autres.
Généralement, ces traducteurs ont tendance à commettre des approximations quand ce n'est pas, carrément, des contre-sens.
Quand on a recours à ces services de traductions, c'est bien qu'on ne maîtrise pas la langue en question.

Comment faire pour vérifier que la traduction proposée n'est pas trop farfelue ? La solution la plus simple que j'ai trouvé est refaire une traduction inversée.
Exemple avec translate.google,
 Si vous essayez de faire traduire en anglais,par google, le vieux slogan : "Anarchie Vaincra", celui vous proposera la traduction suivante "Anarchy defeats".


Si vous reprenez cette traduction, pour la faire retraduire en français, vous obtiendrez la traduction : l'anarchie défaites.
On est loin du slogan d'origine : anarchie vaincra....

Il ne reste plus qu'à essayer différentes tournures de phrases en français jusqu'à trouver une traduction en langue étrangère suffisamment cohérente avec la signification d'origine.

L'exemple proposé ci-dessous est trivial mais lors de traduction plus complexe ça devient vite lassant.

Je me suis donc bricolé sur le pouce un petit programme en bash qui me donne le traduction ainsi que la traduction de la traduction, en simultanée pour vérification immédiate.


Le programme: gtranslate.sh

#!/bin/bash
# usage: ./gtranslate.sh fr en "texte à traduire"

if [ $# == 3 ]
then

echo ; echo "De $1 Vers $2," ; echo "Texte à traduire:" ; echo "$3"; echo
traduc=$(lynx -dump "http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=$3&langpair=$1|$2"|awk -F'"' '{print $6}')
echo "Traduction :"; echo "$traduc" ; echo ; echo "Traduction Inversée"
lynx -dump "http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=$traduc&langpair=$2|$1"|awk -F'"' '{print $6}'
echo

else

echo ; echo "Texte à traduire en anglais:" ; echo "$1" ; echo
traduc=$(lynx -dump "http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=$1&langpair=|en"|awk -F'"' '{print $6}')
echo "Traduction :" ; echo "$traduc" ; echo ; echo "Traduction Inversée"
lynx -dump "http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=$traduc&langpair=|fr"|awk -F'"' '{print "De: "$10" Vers: fr \n"$6}'
echo

fi

exit

(si vous n'avez pas lynx d'installé, un petit "sudo apt-get install lynx" suffira...)

Noubliez pas de faire un "chmod +x gtranslate.sh" pour rendre le programme exécutable.


Le fonctionnement:
./gtranslate.sh abréviation_langue_origine abréviation_langue2 "Texte à traduire"

NB: Si les paramètres de langues sont omis, la traduction se fait en anglais puis de l'anglais vers le français.


Exemples:

Exemple N°1:
./gtranslate0.sh fr en "l'hacktivisme vaincra"

va vous donner :

De fr Vers en,
Texte à traduire:
l'hacktivisme vaincra

Traduction :
hactivisme defeat

Traduction inversée:
défaite hacktiviste

On voit tout de suite l'incohérence de la traduction


Exemple N°2
./gtranslate0.sh fr en "l'hacktivisme sera vainqueur"

va nous donner:

De fr Vers en,
Texte à traduire:
l'hacktivisme sera vainqueur

Traduction :
Hacktivism is the winner

Traduction Inversée
Hacktivisme est le gagnant
Ouf, voilà quelque chose de plus cohérent avec la phrase de départ !


Exemple N°3 (pour le fun)

./gtranslate0.sh fr en "l'UMP vaincra"

va nous donner:

De fr Vers en,
Texte à traduire:
l'UMP vaincra

Traduction :
UMP will win

Traduction Inversée
UMP gagnera
Ce qui montre un fois de plus qu'il faut se méfier des traducteurs en ligne, même quand la traduction semble bonne ... =;-))


Sur la base d'une idée Butinée par ICI

3 commentaires:

  1. Très sympa mais en le lançant Gogole me dit :

    Traduction :
    Suspected Terms of Service Abuse. Please see http://code.google.com/apis/errors

    Traduction Inversée
    Suspected Terms of Service Abuse. Please see http://code.google.com/apis/errors

    ~:-o

    RépondreSupprimer
  2. @kozaki
    Le Google translate API est devenu un service payant dans sa version 2. Et à partir du 24 Août la version 1 passe en service restreint , avec une désactivation programmée au 1er décembre 2011.
    voir le billet suivant http://papillon-butineur.blogspot.com/2011/10/lapi-google-translate-cest-fini.html

    RépondreSupprimer
  3. Ah bin tant pis pour la traduc rapide sur console ; j'espérais tester l'usabilité sur langues non latines (ici l'arabe).

    Merci de l'info (que j'avais fini par lire mais après qlqs autres articles intéressants :-)

    RépondreSupprimer