Si comme moi tu passes pas mal de temps sur des sites de traduction, ce post est fait pour toi.

En effet 99% des bonnes docs étant écrite dans la langue de Shakespeare il n'est pas toujours évident de tout comprendre sans assistance.
C'est pourquoi je me retrouve assez souvent sur wordreference dans une journée.

Globalement wordreference est un très bon service. Toutefois après avoir cherché un peu je me suis rendu compte qu'il n'offrait pas d'API.
Je me suis donc résolu à créer mon propre script (en ruby) qui attaque le site en GET et qui parse le résultat à l'aide de l'excellente lib Hpricot.

Actuellement le script permet de faire les traductions suivantes :

  • Anglais vers français
  • Anglais vers italien
  • Français vers anglais
  • Italien vers anglais

Bizzarement, et c'est dommage, le site n'utilise pas le même format d'URL ni d'affichage pour les traductions en espagnol ; que ce soit depuis ou vers l'espagnol.
Toutefois rien n'empêche de patcher le script pour y remédier.

Pour utiliser ce script il te faut rubygems et hpricot. Rubygems est disponible sur la plupart des distributions ainsi que sous Mac OS X avec fink ou port.
Une fois rubygems installé il faut installer Hpricot à partir de ce dernier :

# gem install hpricot

ou

# gem install hpricot --source http://code.whytheluckystiff.net

Personnellement j'ai choisi la deuxième version pour avoir la build la plus récente.
Si tu as une erreur du genre : `require': no such file to load -- mkmf (LoadError) c'est sûrement qu'il te manque le paquet ruby1.8-dev Une fois installé tu peux utiliser le script de manière suivante :

./translate.rb house

Pour avoir un panel de ce que peut faire le script :

./translate.rb -h

Pour avoir quelques exemples :

./translate.rb -e

Note : Tu peux très bien mettre le script directement dans ton path pour l'utiliser depuis n'importe où, comme une commande normale :

$ sudo ln -s /path/to/translate.rb /usr/local/bin/translate

Le script est disponible sur ce post en annexe, mais la version la plus à jour se trouve dans mon dépôt mercurial.
J'essaierai de mettre une documentation un peu plus complète sur le script dans mon espace dédié sous peu.

Tout est dit, j'attends tes commentaires, retours ou patchs !