Le plugin “Traduire texte” emploie les API de Google Translate, de Bing, de Yandex ou (Nouveau !) de DeepL pour traduire de manière automatique des contenus.

Pour le configurer, il faut se procurer une clé d’API de l’un de ces outils, et la renseigner dans config/mes_options.php
sous la forme :
define('_GOOGLETRANSLATE_APIKEY', 'xxxx');
define('_BING_APIKEY', 'xxxxx');
define('_YANDEX_APIKEY', 'xxxxx');
Une fois la clé renseignée, vous pouvez include_spip('inc/traduire_texte');
et disposez alors de deux fonctions :
traduire_texte( $text, $destLang, $srcLang)
cette fonction appelle l’API et renvoie la traduction ; elle ne conserve rien en cache, il ne faut donc pas l’utiliser directement, sauf si on entend mettre le résultat en cache soi-même.
traduire( $text, $destLang, $srcLang)
cette fonction vérifie son cache (dans la table spip_traductions
, et en cas de besoin appelle la fonction traduire_texte() et enregistre le résultat dans le cache.
Exemple :
include_spip('inc/traduire_texte');
echo traduire('Bonjour comment vas-tu ?', 'en', 'fr');
// => "Hello how are you?"
translate-shell
Alternativement, si vous avez installé translate-shell en ligne de commande et qu’il est disponible pour votre service web, vous pouvez le renseigner dans
define('_TRANSLATESHELL_CMD', '/chemin/de/la/commande/trans');
Cette approche par la ligne de commande n’est cependant destinée qu’à des tests, car elle n’est pas conforme aux conditions d’utilisation exigées par Google ou Bing.
Pour effectuer des traductions à la volée
[2020] Pour effectuer des traductions à la volée dans vos squelettes, il vous faut inclure le fichier js/traduiretexte.js
dans le <head>
du html :
[<script src="(#CHEMIN{js/traduiretexte.js})" type="text/javascript"></script>]
Ajoutez ensuite class="translate_me"
aux balises qui contiennent le texte à traduire, ainsi que l’attribut dir="ltr"
qui signifie left to right ou dir="rtl"
pour un texte right to left.
Exemples
<div dir="ltr" lang="en" class="translate_me">Hello World</div>
<div dir="ltr" lang="es" class="translate_me">Buenos dias el mundo</div>
<div dir="ltr" lang="ar" class="translate_me">مرحبا بالعالم</div>
démo
Deux modes de démo pour vérifier le bon fonctionnement du plugin
- dans le privé : la page /ecrire/?exec=traduiretexte
- dans le public, avec ajax /?page=demo/test_traduiretexte
Discussions by date of activity
One discussion
bonjour,
Je souhaiterais mettre en place une traduction automatique par le plugin traduire texte sur le site handivelo.fr
J’ai récupéré la clé API FREE DeepL.
Pourrais-je avoir une aide, je souhaiterais savoir dans quel fichier je dois insérer les scripts :
balise head :
spip_code spip_code_block[
<script src="(#CHEMIN{js/traduiretexte.js})" type="text/javascript"></script>
]
class=“translate_me”
dir=“ltr”
Je vous remercie de votre aide,
bien cordialement
Christophe
Reply to this message
Add a comment
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
Merci d’avance pour les personnes qui vous aideront !
Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.
Follow the comments:
|
