Fonctionnement
Le plugin “Traduire texte” emploie les API de Google Translate, de Bing, de Yandex ou de DeepL (nouveau !) 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?"
Nouvelle version 2.0
Cette version encore à l’état “dev” apporte le support de DeepL mais ne fonctionne qu’à partir d’un PHP 8.2
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/traduiretexte

Discussions by date of activity
2 discussions
La documentation parle d’une table
spip_traductionsainsi que le code de la fonctiontraduirehttps://git.spip.net/spip-contrib-extensions/traduire_texte/-/blob/master/inc/traduire_texte.php?ref_type=heads#L131 mais elle ne figure pas dans SPIP dist (SPIP4 en tout cas) et elle n’est pas déclarée dans le/basede ce plugin, qui ne contient que des .txt de démo : https://git.spip.net/spip-contrib-extensions/traduire_texte/-/tree/master/baseD’où est-ce donc que sort cette table ?
Elle est déclarée dans le fichier d’administrations : https://git.spip.net/spip-contrib-extensions/traduire_texte/-/blob/master/traduiretexte_administrations.php
Reply to this message
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
La documentation indique « il vous faut inclure le fichier js/traduiretexte.js dans le
<head>du html » : c’est donc dans ton fichier squelette, dans cette balise head.Quant à
class="translate_me" dir="ltr", c’est indiqué qu’il faut l’ajouter « aux balises qui contiennent le texte à traduire ». Il s’agit ici des balises HTML comme<div>...Mais peut être as tu trouvé depuis, et des trucs à ajouter ?
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:
|
