On se tutoie ?

Aller au contenu | Aller au menu | Aller à la recherche

Mot-clé - wordreference

Fil des billets - Fil des commentaires

mercredi, décembre 31 2008

Publication de la gem wrtranslate

wrtranslate est une gem permettant de traduire des mots ou expression en utilisant wordreference.com. La gem s'appelle wrtranslate à cause d'un conflit de nom (translate existe déjà sous forme de gem) mais le projet et l'éxécutable s'appellent translate.

Le projet et la gem sont hébergés chez rubyforge, ainsi que la rdoc. Le code source est lui chez github.

Pour l'installer, il existe plusieurs méthodes. Soit via rubygems (recommandé):

gem install wrtranslate

soit en récupérant le code source sur github:

$ git clone git://github.com/fuse/translate.git
# ruby install.rb

Voici en vrac les améliorations de cette version:

  • Plus modulaire
  • Peut être utilisé à l'intérieur d'un autre programme
  • Plus de langues supportées
  • Peut être installé directement grâce à rubygems
  • Peut utiliser un fichier de configuration placé dans ~/translate.yml
  • Possibilité de spécifier la largeur de shell utilisée
  • Meilleur utilisation de l'espace (2 colonnes)
  • Ajouts de tests
  • Commande translate directement utilisable après installation

Et quelques corrections:

  • Quitte proprement quand ^C est utilisé
  • Le séparateur est positionné au bon endroit

Il y a encore beaucoup de chemin à faire pour que toutes les traductions fonctionnent du fait que word reference n'utilise pas de conventions précises pour présenter ses résultats.

L'affichage est différent selon les mots mais aussi selon les langues ; la priorité va donc à l'amélioration du parser.

Il y a plusieurs moyens de contribuer pour ceux que ça intéresse:

  • Envoyer des patchs
  • Écrire des fichiers de tests
  • M'envoyer des mots qui sont traduits sur le site et qui renvoie un «No results found» en utilisant translate.

mercredi, janvier 30 2008

Pas encore bilingue, translate est là pour toi !

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 !