Easy_translate, la Gem qui fait gagner du temps !

  • Partager l'article

Ruby on Rails a standardisé récemment le fonctionnement de l’internationalisation. Même si tout n’est pas réglé, je pense notamment à la gestion des traductions stockées en base de données, le framework a réellement franchi un cap. Il est donc pas étonnant de voir éclore des gems permettant de gérer ces nouvelles problématiques.

Easy_translate a été développée dans le but de pouvoir rapidement traduire une application sans pour autant connaître la langue cible. On peut donc alors se passer d’un service traduction et offrir son site traduit. En s’appuyant sur cette traduction automatique, et en accolant le désormais célèbre “beta”, on pourra bénéficier des retours utilisateurs pour améliorer ces traductions. On peut intégrer aussi cette gem dans une interface d’administration pour orienter la gestion des traductions.

Comment marche easy_translate ? Tout simplement, en s’appuyant sur l’API de Google : Google Translations. Cette API fournit des services pour traduire un mot, une phrase ou un texte vers une autre langue. Vous pouvez retrouver ces services dans le moteur de recherche de Google avec le lien “traduire” ou dans le navigateur Chrome qui vous propose de de traduire la page que vous visualisez si elle n’est pas dans la langue d’installation du logiciel. Les résultats sont relativement probants même si on n’atteint pas un niveau d’exigence que pourrait avoir un vrai service de traducteurs. Pour mieux comprendre le fonctionnement voici une petite démonstration :

# auto-detect
EasyTranslate.translate('Hello, world', :to => :spanish) # => "Hola, mundo"
EasyTranslate.translate('Hello, world', :to => 'es') # => "Hola, mundo"
# feel free to specify explicitly
EasyTranslate.translate('Hola, mundo', :from => :spanish, :to => :en) # => "Hello, world"

Simple et efficace.

Vous pouvez aussi traduire plusieurs textes en même temps :

# multiple strings
EasyTranslate.translate(['Hello', 'Goodbye'], :to => :spanish) # => ["¡Hola", "Despedida"]
# multiple languages
EasyTranslate.translate('Hello', :to => [:spanish, :french]) # => ["¡Hola", "Bonjour"]
# or both?
EasyTranslate.translate(['Hello', 'Goodbye'], :to => [:es, :it]) # => [['¡Hola', 'Despedida'], ['Ciao', 'Addio']]

Vous pouvez aussi traduire un texte contenant du HTML sans pour autant altérer la structure des balises. Je vous encourage à allez voir le GitHub de l’auteur (John Crepezzi)

Lien permanent : http://scarfellan.com/ff433eOe - jeudi 6 mai 2010