Bonjour, et bienvenue à un nouveau tutoriel passionnant. Ce tutoriel est également disponible dans sa version française et originale ici.
Aujourd’hui, je suis de retour pour partager avec vous un script que j’ai créé, sur lequel j’ai passé 1 heure, et qui s’est avéré inexistant sur le web.
Oui, aujourd’hui, vous allez apprendre à intégrer l’API Deepl en PHP/JSON sur votre site web, ce qui vous permettra d’offrir à vos utilisateurs la possibilité de traduire votre site web proprement et dans le respect de l’art.
Ce tutoriel fait suite à un autre tutoriel que j’avais présenté dans le passé sur HabboDev, et qui reste accessible en version française (pour le moment) ici.
Nous pouvons maintenant commencer !
Deepl, qu’est-ce que c’est ?
DeepL est un service de traduction automatique en ligne de DeepL GmbH, qui a été lancé le 28 août 2017 par l’équipe de Linguee (lisez : Deepl vs google traduction). Le service permet la traduction de onze langues – pas besoin d’utiliser Duolingo – dans 110 combinaisons de langues (allemand, anglais, français, néerlandais, polonais, russe, italien, espagnol, portugais, japonais, chinois simplifié). Ce service utilise des réseaux de neurones convolutifs construits à partir de la base de données Linguee. Au moment de la publication, DeepL aurait surpassé ses concurrents dans les tests en aveugle, notamment Google Traduction, Microsoft Traduction et Facebook. Il serait également plus précis et plus nuancé pour la même vitesse que ses concurrents. Depuis décembre 2018, des traductions en russe et en portugais sont également disponibles. Le 19 mars 2020, des traductions en chinois simplifié et en japonais ont été ajoutées. Son principe repose sur un robot d’indexation permettant de collecter les traductions déjà existantes sur les sites web. En août 2018, la barre des 20 millions d’utilisateurs est franchie. Au 12 mai 2019, 21,8% du trafic provient d’Allemagne, 17,4% de France, 10% d’Espagne, 7,9% de Suisse et 4,1% de Pologne.
Source : Wikipédia
Une documentation complète et officielle est disponible à ce lien : https://www.deepl.com/docs-api/
Pour pouvoir intégrer l’API Deepl dans votre site web, vous devez avoir un minimum de connaissances dans les domaines des tableaux, du curl et/ou du httprequest.
De plus, la mauvaise nouvelle est que vous aurez besoin d’un compte « Développeur » afin d’avoir accès à une clé d’authentification qui vous permettra d’utiliser l’API sur votre site web. Malheureusement, l’abonnement coûte 5€/mois puis 20,00 € pour 1 000 000 de caractères traduits (vous disposez d’une certaine marge).
Ensuite, la bonne nouvelle est que Deepl offre 1 mois GRATUIT à tous les nouveaux utilisateurs, ce qui vous permettra au moins de tester l’API, de vous former, voire de l’utiliser par la suite pour des clients potentiels (si vous êtes freelance) ou simplement pour la future entreprise pour laquelle vous travaillerez.
Lien tarifaire : Plans de profondeur
Enfin, vous n’êtes pas obligé d’utiliser cette API, car il existe de nombreuses autres façons d’offrir un système de traduction à vos futurs internautes, mais vous ne devez retirer que le positif de ce tutoriel, car, en plus de vous faire sortir de votre zone de confort, il vous apprendra les bases du code qui seront importantes pour vous permettre de poursuivre vos études et/ou votre apprentissage en développement.
CURL, et TABLES sont des éléments fondamentaux en PHP.
Une personne qui prétend être « Développeur » et qui ne sait pas les utiliser est une personne vouée à l’échec dans ce domaine.
Nous pouvons commencer !
Étape I – Choisir une méthode Vous devrez déjà faire un choix entre la méthode CURL et la méthode HTTPREQUEST pour pouvoir consommer votre API.
Curl est livré avec PHP, HTTPRequest est une extension PECL distincte. Il est donc beaucoup plus probable que CURL sera installé sur votre plate-forme cible, ce qui est à peu près le facteur décisif pour la plupart des projets, et pour ce tutoriel.
Étape II – Convertir CURL et/ou HTTPREQUEST en PHP
Si vous êtes plus expérimenté, je vous laisse la possibilité de le faire à votre façon, voici les informations à consommer pour 1 mot à traduire :
– Méthode de la boucle
curl https://api.deepl.com/v2/translate \
-d auth_key=[yourAuthKey] \
-d « text=Hello, world » \
-d « target_lang=FR »
– Méthode HTPPREQUEST
POST /v2/translate?auth_key=[yourAuthKey]> HTTP/1.0
Hôte : api.deepl.com
User-Agent : YourApp
Accepter : */*
Contenu et longueur : 54
Type de contenu : application/x-www-formulaire-urlencodé
auth_key=[yourAuthKey]&text=Hello, world&target_lang=FR
Si vous êtes moins expérimenté, nous commencerons par la méthode CURL et la convertirons en PHP :
– Méthode CURL
curl https://api.deepl.com/v2/translate \
-d auth_key=[yourAuthKey] \
-d « text=Hello, world » \
-d « target_lang=FR »
Vous allez utiliser un convertisseur (voir aussi pour de la musique : YouTube MP3 ) déjà existant grâce à curl-to-PHP, et coller le code ci-dessus dans la case prévue à cet effet (c’est magique, et plutôt rapide ;)).
Vous devriez obtenir ce résultat :
// Généré par curl-to-PHP : http://incarnate.github.io/curl-to-php/
$ch = curl_init() ;
curl_setopt($ch, CURLOPT_URL, ‘https://api.deepl.com/v2/translate’) ;
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1) ;
curl_setopt($ch, CURLOPT_POST, 1) ;
curl_setopt($ch, CURLOPT_POSTFIELDS, « auth_key=[yourAuthKey]&text=Hello, world&target_lang=FR ») ;
$headers = array() ;
$headers[] = ‘Content-Type : application/x-www-form-urlencoded’ ;
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers) ;
$result = curl_exec($ch) ;
if (curl_errno($ch)) {
echo ‘Error:’ . curl_error($ch) ;
}
curl_close($ch) ;
Étape III – Mise en place du code PHP Si vous avez une bonne compréhension de l’anglais et un niveau minimum de compétence dans ce domaine, vous devriez déjà avoir trouvé les paramètres à modifier dans le code. Si ce n’est pas le cas, je vais vous éclairer :
Remplacer : [votreClefd’authentification]
Par : Votre clé d’authentification que vous pouvez consulter ici après vous être inscrit, connecté et souscrit à l’abonnement « Développeur ».
Ensuite :
Remplacer : Bonjour, le monde
Par : Un mot que vous souhaitez traduire
Ensuite :
Remplacer : FR
Par : Le code ALPHA 2 de la langue dans laquelle vous voulez traduire votre mot
Et voilà, vous avez fini de définir votre code !
Étape IV – Convertir JSON en BRUT
Et maintenant, vous devez afficher votre mot traduit, et pour cela, vous devez jouer avec JSON et PHP :
<?php
// Généré par curl-to-PHP : http://incarnate.github.io/curl-to-php/
$ch = curl_init()
curl_setopt($ch, CURLOPT_URL, ‘https://api.deepl.com/v2/translate’) ;
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1) ;
curl_setopt($ch, CURLOPT_POST, 1) ;
curl_setopt($ch, CURLOPT_POSTFIELDS, « auth_key=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx&text=Hello, world&target_lang=FR ») ;
$headers = array() ;
$headers[] = ‘Content-Type : application/x-www-form-urlencoded’ ;
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers) ;
$result = curl_exec($ch) ;
if (curl_errno($ch)) {
echo ‘Error:’ . curl_error($ch) ;
}
curl_close($ch) ;
$translatedWords = json_decode($result, true) ; // Décode le mot
$result = $translatedWords [traductions] [0] [texte] ; // Recherchez le mot
echo $result ; // Afficher le mot
Voilà, votre site est bien connecté à Deepl !
Et enfin, si vous avez eu la flemme de suivre le tutoriel et que vous préférez le live, voici le lien pour télécharger le code.
Matelot, ce sujet touche enfin à sa fin !
J’espère que vous le trouverez utile, et que vous proposerez aux utilisateurs de DevDojo une version améliorée de ce script pour le faire durer dans le temps !
Cliquez pour accéder à une alternative de ce script.
En attendant, je vous souhaite une bonne continuation, et un bon courage pour l’avenir, et que la mer soit avec vous !