Guide
Chatbot sur un site multilingue WordPress : WPML, Polylang
Passer la langue de la page au chatbot avec WPML ou Polylang, choisir une base par langue ou une seule, et tester chaque version du site.
Mis à jour le
Sur un site WordPress traduit avec WPML ou Polylang, le chatbot doit savoir dans quelle langue est la page où il s'ouvre. Sinon, il accueille en français un visiteur qui lit la version anglaise. La solution consiste à lire la langue de la page côté WordPress, avec la fonction prévue par l'extension de traduction, puis à la transmettre au widget. Selon l'outil, on passe un paramètre de langue, ou on charge un assistant différent par langue.
Cette page porte sur le geste technique dans WordPress. Pour le comportement du chatbot lui-même (détection de la langue, contenu par langue ou traduction), voyez la page de chatbot.alaisia.fr sur le chatbot multilingue.
Lire la langue de la page
Avec WPML
La documentation de WPML décrit le filtre wpml_current_language, qui « renvoie la langue actuelle » :
$langue = apply_filters( 'wpml_current_language', NULL );
Elle précise de passer NULL en argument, puisque le filtre ne modifie aucune valeur.
Avec Polylang
La référence des fonctions de Polylang décrit pll_current_language(), qui renvoie la langue courante. Son paramètre facultatif accepte 'name' (nom complet), 'locale' (code régional de WordPress) ou 'slug' (code court à deux lettres, valeur par défaut). La documentation conseille de vérifier l'existence de la fonction avec function_exists() avant de l'appeler, ce qui protège le site le jour où l'extension est désactivée.
Deux façons de servir la bonne langue
| Façon | Comment | Quand la choisir |
|---|---|---|
| Un assistant, un paramètre de langue | Le même widget reçoit la langue de la page (attribut, option d'initialisation) | Quand l'outil gère plusieurs langues dans un même assistant |
| Un assistant par langue | Un identifiant ou un script différent selon la langue | Quand chaque langue a sa base de contenus et ses consignes |
Le choix dépend de l'outil et du contenu du client. Si les conditions de vente n'existent qu'en français, un assistant anglais devra traduire ou renvoyer vers la version française : c'est à décider avec le client, avant l'installation.
Exemple : charger le bon assistant selon la langue
Schéma de principe pour le functions.php d'un thème enfant (jamais le thème parent, dont les modifications disparaissent à la mise à jour). Il lit la langue avec Polylang ou WPML, puis charge un script différent avec wp_enqueue_script, en différé :
add_action( 'wp_enqueue_scripts', function () {
if ( function_exists( 'pll_current_language' ) ) {
$langue = pll_current_language( 'slug' );
} else {
$langue = apply_filters( 'wpml_current_language', NULL );
}
// Adresses d'exemple : une par langue, selon votre outil.
$scripts = array(
'fr' => 'https://fournisseur.exemple/widget-fr.js',
'en' => 'https://fournisseur.exemple/widget-en.js',
);
if ( isset( $scripts[ $langue ] ) ) {
wp_enqueue_script(
'assistant-chat',
$scripts[ $langue ],
array(),
null,
array( 'in_footer' => true, 'strategy' => 'defer' )
);
}
} );
Les adresses sont fictives : remplacez-les par celles de l'outil. Si l'outil prend plutôt un paramètre de langue, gardez un seul script et transmettez la valeur de $langue selon sa documentation. Faites écrire et tester ce code par la personne qui maintient le thème.
La base de contenus par langue
L'assistant lit les pages du site pour répondre. Sur un site multilingue, vérifiez :
- quelles versions du site l'outil lit : toutes les langues, ou seulement la langue principale ;
- que chaque assistant lit sa langue : un assistant anglais qui lit les pages françaises répondra mal ;
- les documents hors site (brochures PDF, conditions) : existent-ils dans chaque langue ?
- la relecture après changement : une modification de tarif doit être faite, puis relue par l'assistant, dans chaque langue (voir mettre à jour le chatbot après une modification).
Le message d'accueil et les mentions
Le message qui signale l'IA doit exister dans chaque langue, tout comme la mise en garde sur les données sensibles et le lien vers la politique de confidentialité de la langue concernée (voir les mentions à ajouter au site).
Liste de contrôle
- Langue de la page lue avec
wpml_current_languageoupll_current_language(), avecfunction_exists(). - Bon assistant ou bon paramètre de langue transmis au widget.
- Script chargé en différé, depuis un thème enfant ou une extension d'insertion.
- Chaque assistant lit les pages de sa langue.
- Message d'accueil et mentions traduits.
- Test d'une conversation complète dans chaque langue du site, sur ordinateur et sur mobile.
Questions fréquentes
Comment connaître la langue de la page avec WPML ?
Avec le filtre wpml_current_language : apply_filters( 'wpml_current_language', NULL ) renvoie la langue affichée. La documentation de WPML précise de passer NULL, car le filtre ne modifie aucune valeur.
Comment connaître la langue de la page avec Polylang ?
Avec pll_current_language(). Son paramètre facultatif accepte 'name', 'locale' ou 'slug' (valeur par défaut) ; la documentation conseille de vérifier que la fonction existe avec function_exists() avant de l'appeler.
Sources
Pages consultées pour écrire cet article :