Traduire texte

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
privé /ecrire/?exec=traduiretexte
et public avec ajax /?page=demo/test_traduiretexte

updated on 6 April 2020

Discussion

Aucune discussion

Ajouter un commentaire

Who are you?
[Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom