L‘API officielle Google Translate est disponible pour les entreprises en payant un droit de licence… Mais il est possible d’appeller l’API secrète translate.googleapis.com qui est utilisée en interne par l’extension pour Chrome de Google Translate !
Sur son site Digital Inspiration, le célèbre Amit Agarwal (historiquement le 1er blogger Indien) nous informe de cette possibilité et nous montre comment la mettre en oeuvre en Javascript.
Cela m’a donné l’idée de réaliser une petite API en C# pour fournir l’accès au service de traduction, et un outil en ligne de commande pour utiliser l’API. Voici un exemple du résultat :
L’API « secrète » de Google Trad expose un service REST via HTTP/HTTPS GET. Les paramètres sont donc fournis via les données d’URL, et le service répond en JSON. Ce programme utilise l’excellente librairie NewtonSoft Json pour décoder le résultat.
La syntaxe de la commande est donnée par celle-ci en l’abscence de paramètres :
GTradRestAPI.exe command line syntax: source_langid target_langid text [-q] source_langid : original text lang id target_langid : translated text lang id -q : turn off all outputs excepting errors or -list : dump list of langugaes ids & names
les codes de langue qu’il faut fournir en paramètre pour la traduction peuvent être obtenus en utilisant la deuxième syntaxe de la commande :
GTradRestAPI.exe -list
l’API proposée ici permet d’effectuer le même travail qu’avec l’outil en ligne de commande tout en acceptant de travailler avec les noms ou les codes de langues en plus des identifiants:
namespace GTradRestAPI { public interface IGTradRestAPIClient { /// /// translate text from source and target languages codes /// ///source language code ///target language code ///text to be translated /// Translation object Translation Translate(string sourceLanguageId, string targetLanguageId, string text); /// /// translate text from source and target language names if valids /// ///source language name ///target language name ///text to be translated /// Translation object Translation Translate(Languages sourceLanguage, Languages targetLanguage, string text); /// /// translate text from source and target languages ids given as string if valids /// ///source language id ///target language id ///text to be translated /// Translation object Translation TranslateFromNames(string sourceLanguageName, string targetLanguageName, string text); } }
comment obtenir l’outil ?
Le binaire est disponible en téléchargement sur ce site. Vous devez être connecté pour accéder au téléchargement. Utilisez le lien suivant pour télécharger l’outil GTradRestAPI.exe :
GTradRestAPILe code source est placé dans un repository public sur GitHub à l’adresse: