Parce qu’il faut bien mettre un petit peu en pratique de temps en temps, je me suis amusé à créer une class qui implémente un module de traduction à l’aide de BabelFish (le système de traduction de Yahoo). En résumé, j’ai plusieurs attributs qui déterminent les différents paramètres de la classe (url de la page de retour, url de BabelFish, langue du message à traduire, langue de la traduction), le constructeur permet de définir ces deux derniers, puisque ce sont les seules succeptible de changer assez souvent ! (pour pouvoir faire du Espagnol -> Anglais ou Grec -> Chinois) L’url pour traduire une phrase avec BabelFish se décompose de la manière suivante :
- http://fr.babelfish.yahoo.com/translate_txt : base de l’url
- lp : langues à utiliser (ex : fr_en)
- trtext : chaine de caractères à traduire. Les caractères accentués sont bien traités, mais les guillements et les espaces posent un problème. Il faut remplacer les espaces par des + ou des
%20, quant aux guillemets, bah je n’arrive pas à savoir par quoi il fut les transformer, donc pour l’instant je bloque.
Et voilà, il n’y a plus qu’à faire un petit file_get_contents pour récupérer la page chargée par cet url, et une petite regex pour ne récupérer que la traduction : et le tour est joué !
Continuer la lecture
