Ajouter la traduction d’un texte en temps réel

Pour faire suite à l’article sur les Easy Integrations avec K2 en s’appuyant sur le connecteur REST, voyons aujourd’hui rapidement comment faire la traduction d’un texte à la volée en s’appuyant sur les Translator Text API des Microsoft Cognitives Services, ce qui permettra par exemple d’automatiquement traduire les commentaires de vos utilisateurs lorsque tout le monde ne parle pas la même langue.

A nouveau, pas besoin de mettre en place le fichier Swagger, Andy l’a fait pour vous ici et vous pouvez donc utiliser le .json disponible sur le site communautaire de K2.

Récupérer sa clé de souscription

La 1ère étape consiste à récupérer une clé vous autorisant à utiliser le service Azure de traduction. Il faut donc un compte Azure et un abonnement de facturation actif… même si pour des tests, il sera difficile de dépasser le volume nécessitant de payer. A ce jour, le service peut être utilisé gratuitement jusqu’à la demande de traduction de 2 millions de caractères par mois.

Il faut donc activer le service suivant :

Service de traduction dans le portail Azure

Une fois activé, après avoir donné un nom (APITraduction dans mon cas) à votre ressource et l’avoir associé à un abonnement, vous pourrez récupérer votre clé au niveau de la catégorie Démarrage rapide de votre service, elle vous servira plus tard :

Récupération de la clé de souscription

Configuration du service REST

Rendez-vous sur le K2 Management Site, catégorie Integration > Service Instances, pour ajouter un nouveau Service Type REST :

Ajouter une instance de service

Puis, il faudra référencer le fichier .json dans le champ Descriptor Location. Vous pouvez alors le récupérer et indiquer son adresse d’accès (URL ou chemin local dans le cas de K2 Five) ou vous pouvez utiliser directement le lien d’Andy (à savoir : https://swagger.blob.core.windows.net/files/TranslatorAPI.json).Il faudra également spécifier les Default HTTP Request Headers qui contiendront la clé de souscription récupérée à l’étape précédente (à savoir : {"$type":"SourceCode.SmartObjects.Services.Endpoints.Common.HttpHeader[], SourceCode.SmartObjects.Services.Endpoints.Common, Version=4.0.0.0, Culture=neutral, PublicKeyToken=null","$values":[{"$type":"SourceCode.SmartObjects.Services.Endpoints.Common.HttpHeader, SourceCode.SmartObjects.Services.Endpoints.Common, Version=4.0.0.0, Culture=neutral, PublicKeyToken=null","Name":"Ocp-Apim-Subscription-Key","Value":"<ICI VOTRE CLé>"},{"$type":"SourceCode.SmartObjects.Services.Endpoints.Common.HttpHeader, SourceCode.SmartObjects.Services.Endpoints.Common, Version=4.0.0.0, Culture=neutral, PublicKeyToken=null","Name":"api-version","Value":"3.0"}]}, remplacer <ICI VOTRE Clé> par votre clé).

Prenez également soin de générer les smartobjects :

Configuration de l’instance

Une fois l’instance ajoutée, vous retrouverez le smartobject au niveau de la catégorie REST, il dispose d’une seule méthode Translate :

Le SmO généré

Utilisation du service

Pour tester le service, créons une simple vue qui contient un textarea dont le contenu sera à traduire, un champ auto-complete qui permettra de choisir la langue (utilisation des codes ISO sur 2 caractères), un datalabel qui contiendra le résultat et enfin un bouton qui permettra de lancer al demande de traduction :

La vue utilisée pour le test en mode design

Il faudra juste mettre une règle sur le clic du bouton Traduire >> qui fera la bonne association des champs (le champ From pour la langue d’origine n’est pas obligatoire, car le service est en mesure de la détecter automatiquement) :

Règle du bouton

Et voici ce que ça donne à l’exécution :

Résultat

En espérant que cela puisse vous servir.

Happy K2ing!

jean

Directeur technique de K2 France depuis 2006 et passionné par les technologies, je travaille dans le monde du BPM et des applications métier depuis... que je travaille :). Vous pouvez également me suivre sur twitter, linkedin.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.