lundi 6 octobre 2014

SCRIPT SHELL – TRADUCTION GOOGLE

Traduction google

Depuis que google a rendu son api de traduction « Google translator » payante, la majorité des script proposés ne fonctionnent plus. Ne cherchez pas à obtenir un résultat avec ce script par exemple:
#!/bin/bash

if [ $# == 3 ]
then
echo "From: $1 To: $2"
lynx -dump "http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=$3&langpair=$1|$2"|awk -F'"' '{print $6}'

else
lynx -dump "http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=$1&langpair=|ar"|awk -F'"' '{print "From: "$10" To: ar \n"$6}';echo

lynx -dump "http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=$1&langpair=|en"|awk -F'"' '{print "From: "$10" To: en \n"$6}';echo

fi
Ce script présente en effet 2 défaut:
  • Il est basé sur Google apis qui est devenue payante
  • Il a besoin du navigateur texte lynx pour fonctionner, ce qui n’est pas toujours pré-installé …
  • Ce que je propose c’est une solution beaucoup plus simple. On va tout d’abord utiliser wget qui est là par défaut sur toutes les distributions linux même les plus allégées. ensuite, le script doit pouvoir fonctionner en 2 modes uniquement, pas besoin de préciser la langue en effet pour que le traducteur de google puisse faire son travail. Donc on aura les 2 mode suivant:
  • Un mode à 2 paramètres pour préciser la langue de destination du texte, genre ./script fr "Texte à traduire".
  • Un mode où on a juste besoin de préciser le texte à traduire et prendre le paramètre par défaut dans le script default pour la langue de destination: ./script "Texte à traduire"
  • Le script

    #!/bin/sh
    default='fr'
    if [ $# == 1 ]
    then
    echo "langue de destination: $default"
    wget -U "Mozilla/5.0" -qO - "http://translate.google.com/translate_a/t?client=t&text=$1&sl=auto&tl=$default" | sed 's/\[\[\[\"//' | cut -d \" -f 1
    fi
    if [ $# == 2 ]
    then
    wget -U "Mozilla/5.0" -qO - "http://translate.google.com/translate_a/t?client=t&text=$2&sl=auto&tl=$1" | sed 's/\[\[\[\"//' | cut -d \" -f 1
    fi
    Pour la langue de destination par défaut, il suffit de changer la valeur de la variable default dans le script et le tour est joué. Il est à noter que le code de la langue doit être au format ISO 639-1 disponible un peu partout sur le net.
    Exemples:
  • Français: fr
  • Arabe: ar
  • Anglais: en
  • Italien: it
  • Aucun commentaire:

    Enregistrer un commentaire