1. Bonjour tout le monde ! Veillez consulter la Politique de forum pour comprendre nos règles, Merci a vous !
    Rejeter la notice

TUTO Traduire des phrases avec l'API Google Cloud Translate dans vos applications

Discussion dans 'Windev' créé par haffar, Juin 5, 2018.

  1. haffar

    haffar Member

    Inscrit:
    Juin 5, 2018
    Messages:
    30
    J'aime reçus:
    63
    L'utilisation de cette API, qui s'appelait autrefois plus simplement Google Translate API, nécessite que vous récupériez une clé (Google Cloud Translate API Key).

    Comme l'interface de la plateforme cloud de développement de Google a beaucoup changé ces derniers temps, je vous laisse chercher sur google ou Youtube les tutoriels les plus récents qui vous expliqueront comment créer une clé API de ce type, depuis la console de développement cloud :

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!



    Vous devriez vous retrouver au final avec une clé mélangeant des lettres et des chiffres, d'une longueur de 40 caractères.
    Exemple de clé : AUzih4iuzdhi_kjznjkdnkedzoirhjjsoidekz18 (ne fonctionnera pas, je viens de l'inventer)


    Dans la pratique voici donc une procédure qui vous montre comment exploiter cette API via une requête de type REST. Vous pouvez l'utiliser telle qu'elle, mais je vous encourage à chercher à comprendre comment cela fonctionne.

    Pour les traductions précisez le code langue en paramètre exemple 'en' pour anglais, 'fr' pour français, ou 'ja' pour japonais. Attention donc à bien utiliser les bons codes (et non pas 'fra', 'gb' ou 'jp' dans notre cas, qui poseraient problème. Il semblerait que google utilise la norme ISO 339-1, soit la première colonne du tableau disponible sur Wikipedia à cette adresse :

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!




    [​IMG]


    Voici un exemple sous windev de traduction obtenue du français vers le japonais dans mon applicatif :
    [​IMG]

    Vous remarquerez donc que l'UNICODE est géré, pour pouvoir exploiter aussi les langues orientales.
    Mon seul regret dans ce cas de figure,c 'est que la requête REST ne renvoie pas la "translitération", alors que sur le site de google translate, elle y figure.

    En clair, dans notre exemple, j'aurais aimé pouvoir aussi récupérer "saru tame no jikan desu"

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!




    Code (Windev):

    PROCEDURE Traduire(LOCAL sSourceATraduire est une chaîne UNICODE,sCodeLangueSource est une chaîne ="auto",sCodeLangueDest est une chaîne ="en" ):chaîne UNICODE

    // définitions des objets de notre requête REST
    JSONRequest est une restRequête
    JSONReponse est une restRéponse

    // !!!! ATTENTION ICI METTRE VOTRE CLE API !!!
    GOOGLE_KEY_TRANSLATE_API est une chaîne = "insérerz ici votre clé API"

    // configuration de la requête :
    // on prévient qu'on utilise un format JSON
    JSONRequest.ContentType = typeMimeJSON
    // on prépare aussi l'URL qui pointe vers l'API de Google Translate
    JSONRequest.url = "https://translation.googleapis.com/language/translate/v2?key=" + GOOGLE_KEY_TRANSLATE_API
    // préparation du contenu au format JSON de la requête telle que l'attend l'API pour bien fonctionner
    JSONRequest.Contenu = [
     {"q":"%1",
     "source":"%2",
     "target":"%3",
     "format":"text"
     }
    ]
    // on y insère notre demande spécifique (en remplaçant les %1,%2,%3 par les vrais mots ou expressions :
    JSONRequest.Contenu =

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (JSONRequest.Contenu,

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (sSourceATraduire),sCodeLangueSource,sCodeLangueDest)
    // On envoie notre demande au serveur google
    JSONReponse = RESTEnvoie(JSONRequest)
    // gestion d'une éventuelle erreur
    SI

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ALORS

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (errComplet))
    RENVOYER ""
    FIN
    // et récupération du contenu JSON dans un Variant
    soit v =

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (JSONReponse..Contenu)
    // l'avantage de cette méthode c'est que l'objet v de type variant doit contenir
    // toute l'arborescence de l'objet de retour (que windev reconstitue de lui même)

    // il ne nous reste plus qu'à renvoyer la partie de l'objet qui nous intéresse, à savoir la traduction.
    RENVOYER "" + v.data.translations[1].translatedText

    [code]

    Source :

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

     
    #1 haffar, Juin 5, 2018
    Dernière édition: Juin 5, 2018
    Tags:

Partager cette page

Chargement...