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 :

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 :

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

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 :

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
:

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 :

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) :

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

En espérant que cela puisse vous servir.
Happy K2ing!