Traduction de texte dans Unity grâce a l’API gratuite de Yandex

YouTube player

Yandex.Translate est un service web fourni par Yandex, permettant la traduction automatique de texte ou des pages web d’une langue vers une autre langue.

Le service utilise un système statistique de traduction automatique par auto-apprentissage, auto-développé. Le système construit un dictionnaire de correspondances, fondées sur l’analyse de millions de textes traduits.

Il convient de noter que la fonction de traduction obtenue dans les pages de résultats de recherche (sur le bouton « Traduire ») est apparue en 2009 et a été réalisée sur la base de PROMT.

En outre, le traducteur est intégré dans le navigateur Yandex et propose de traduire automatiquement du texte à partir des langues étrangères prise en charge.

Utiliser l’API Yandex dans Unity

Qu’est ce qu’une API ?

Une API permet de rendre disponibles les données ou les fonctionnalités d’une application existante afin que d’autres applications les utilisent. Voici qui devrait rendre la notion d’interface de programmation applicative plus claire 😊

Utiliser une API permet donc d’utiliser un programme existant plutôt que de le re-développer. C’est donc un grand gain de temps à la clé.

Exploiter l’API de traduction Yandex dans UNITY

Ce tutoriel se fera en 3 étapes afin d’exploiter l’api de Yandex dans Unity :

  • Utiliser les UnityWebRequest afin de pouvoir récupérer la réponse de l’API au format XML
  • Construire l’URL pour exploiter l’API
  • Parser (Extraire) le Texte traduit reçu.

Code Source du Tutoriel

using System.Collections;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Networking;
public class Yandex : MonoBehaviour
{
    public Text txt;

    public void Traduire()
    {
        string key = "Votre API Key";
        string url = "https://translate.yandex.net/api/v1.5/tr/translate?lang=fr-en&key=" + key + "&text=" + txt.text;
        StartCoroutine(GetRequest(url));
    }

    IEnumerator GetRequest(string uri)
    {
        using (UnityWebRequest webRequest = UnityWebRequest.Get(uri))
        {
            yield return webRequest.SendWebRequest();

            if(webRequest.isNetworkError)
            {
                txt.text = webRequest.error;
            }
            else
            {
                txt.text = ParseResponse( webRequest.downloadHandler.text);
            }
        }
    }

    string ParseResponse(string XlmResponse)
    {
        int startPos = XlmResponse.IndexOf("<text>");
        int endPos = XlmResponse.IndexOf("</text>");
        return XlmResponse.Substring(startPos + 6, endPos-startPos -6);
    }
}

Yandex à fait ses preuves il est aussi intégrer par le MIT dans AppInventor

Conclusion

L’API de Yandex ouvre d’énorme perspective, elle permet de faire de la traduction à la volée dans de nombreux langage:

LanguageCodeLanguageCode
AzerbaijanazMalayalamml
AlbaniansqMaltesemt
AmharicamMacedonianmk
EnglishenMaorimi
ArabicarMarathimr
ArmenianhyMarimhr
AfrikaansafMongolianmn
BasqueeuGermande
BashkirbaNepaline
BelarusianbeNorwegianno
BengalibnPunjabipa
BurmesemyPapiamentopap
BulgarianbgPersianfa
BosnianbsPolishpl
WelshcyPortuguesept
HungarianhuRomanianro
VietnameseviRussianru
Haitian (Creole)htCebuanoceb
GalicianglSerbiansr
DutchnlSinhalasi
Hill MarimrjSlovakiansk
GreekelSloveniansl
GeorgiankaSwahilisw
GujaratiguSundanesesu
DanishdaTajiktg
HebrewheThaith
YiddishyiTagalogtl
IndonesianidTamilta
IrishgaTatartt
ItalianitTelugute
IcelandicisTurkishtr
SpanishesUdmurtudm
KazakhkkUzbekuz
KannadaknUkrainianuk
CatalancaUrduur
KyrgyzkyFinnishfi
ChinesezhFrenchfr
KoreankoHindihi
XhosaxhCroatianhr
KhmerkmCzechcs
LaotianloSwedishsv
LatinlaScottishgd
LatvianlvEstonianet
LithuanianltEsperantoeo
LuxembourgishlbJavanesejv
MalagasymgJapaneseja
Malayms

Avec un peu de code, il est possible de traduire son interface , ou encore traduire des sous-titres de cinématique, etc… Une API idéal gratuite qui vous permettra de rendre votre jeu multilingue.


A propos de upln 274 Articles
En informatique le problème se situe souvent entre la chaise et le clavier !

Soyez le premier à commenter

Poster un Commentaire

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