Si vous vendez au-delà des frontières sur WooCommerce, vous exécutez WPML, Polylang ou TranslatePress. Peut-être deux d'entre eux sur différents sites. La couche de traduction est tellement commune que les propriétaires de boutiques cessent de la remarquer comme un plugin séparé. C'est juste comment la boutique fonctionne.
Ensuite un plugin de chat est installé et les fissures se montrent en un jour. L'acheteur sur la version française de la boutique reçoit des réponses en anglais. Ou le chat trouve un produit anglais et le recommande sur une page allemande où le même produit a une URL allemande. Ou pire, le chat dit qu'un produit existe, le lie, et le lien 404 car le chat a indexé la langue maître uniquement.
J'ai regardé cela arriver sur plusieurs boutiques. Le propriétaire de la boutique la dépose comme « comportement chat étrange » et essaie un autre plugin de chat. Le nouveau casse de la même façon. La plupart des plugins de chat n'ont pas été conçus pour la façon dont les plugins de traduction WordPress stockent les données et les échecs se ressemblent identiquement d'un fournisseur à l'autre.
Comment WPML, Polylang et TranslatePress stockent les données
C'est le morceau que la plupart des plugins de chat ignorent. Chaque plugin de traduction utilise un modèle différent.
WPML : postes séparés liés par trid
WPML crée un nouveau WP_Post pour chaque traduction. Le produit original, sa traduction française et sa traduction allemande sont trois postes séparés avec trois ID séparés. Ils sont liés via un ID de traduction (trid) dans la table wp_icl_translations.
Si un plugin de chat interroge wp_posts pour les produits et s'arrête là, il obtient les trois postes comme des produits séparés. Le chat indexera une version française et anglaise comme s'il s'agissait de deux SKU sans rapport. Même image, langue différente, ID différent. Pure duplication de données, et le chat recommandera la version de langue qu'il classe la plus élevée dans son espace d'incorporation, qui est généralement le maître.
Polylang : même motif, différentes tables
Polylang suit le même modèle de poste séparé que WPML, mais stocke ses liens de traduction dans wp_term_taxonomy avec une taxonomie post_translations. Le mécanisme de regroupement est différent ; la conséquence pour un plugin de chat naïf est la même. Chaque version de langue est un poste distinct.
TranslatePress : même poste, traduit au rendu
TranslatePress adopte l'approche opposée. Il y a un poste dans wp_posts. Les traductions vivent dans une table wp_trp_dictionary_xx_YY séparée, indexée par la chaîne originale. Quand la vitrine se rend, TranslatePress échange les chaînes au fur et à mesure que la page se construit.
Un plugin de chat qui lit wp_posts voit la langue maître uniquement. Il ne trouve jamais la version française car le contenu français vit dans une table de remplacement de chaîne que le plugin n'interroge pas. Le chat répond aux acheteurs français à partir du poste anglais. Parfois le LLM traduit à la volée ; parfois non. De toute façon l'expérience est incorrecte.
Les trois modes d'échec multilingues
1. Indexation d'une langue et traduction du reste au moment de l'exécution
Le chemin le moins cher pour un fournisseur de chat : indexer la langue maître, demander au LLM de traduire la réponse au moment de la conversation. Cela fonctionne pour les salutations et les questions de catégories. Cela échoue dès qu'un acheteur tape quelque chose de spécifique.
« Avez-vous le sac à main en cuir noir taille moyenne ? » Le chat cherche dans son index anglais « leather handbag black medium ». La traduction anglaise du catalogue pourrait dire « midsize ». La recherche de vecteurs manque. L'acheteur reçoit un message « Je ne pouvais pas trouver cela » en français. Le produit est sur la vitrine en français.
Vous ne voyez pas cela dans les tableaux de bord du chat car la conversation semble normale. Vous le voyez dans les données de conversion : les acheteurs français convertissent à la moitié du taux anglais.
2. Indexation de chaque traduction comme produit séparé
Le plugin lit wp_posts et indexe tout ce qu'il trouve. Le chat finit avec trois entrées « Black Leather Handbag » (anglais, français, allemand), toutes avec des incorporations similaires. Quand un acheteur demande à ce sujet, le chat en choisit une au hasard ou par détection de langue qui ne fonctionne pas toujours.
La recommandation se lie à l'URL de la langue maître. L'acheteur sur le site français clique et atterrit sur un 404 ou sur la page anglaise au milieu de son flux d'achat français. Confiance perdue.
3. Indexation par langue mais lien incorrect sur la recommandation
Certains plugins font le travail le plus difficile : détecter la langue du visiteur à partir de la page, acheminer la requête vers l'index de langue approprié. Mais quand le chat retourne une carte de produit, il retourne l'URL de son index sans l'acheminer à nouveau via la recherche de traduction.
Le chat dit « Voici le sac » et se lie à /en/black-leather-handbag/ au lieu de /fr/sac-a-main-en-cuir-noir/. Le lien fonctionne, mais l'acheteur lit maintenant l'anglais sur un flux d'achat français. Certains partent immédiatement.
Ce que le chat conscient du multilinguisme a besoin
Pour que le chat se comporte correctement sur une boutique WPML, Polylang ou TranslatePress, quatre choses doivent se produire :
- Reconnaître la langue du visiteur du contexte de la page. Le widget doit connaître la langue de la vitrine au démarrage de la conversation, pas deviner à partir du texte du message. WPML et Polylang exposent la langue active comme
ICL_LANGUAGE_CODEoupll_current_language(). Le widget devrait la passer au backend du chat à chaque session. - Indexer chaque traduction comme variante de langue du même produit. Trois URL, un produit, trois ensembles de texte traduit. Le chat cherche parmi toutes les variantes mais recommande l'URL qui correspond à la langue du visiteur.
- Résoudre le regroupement de traduction au moment de la synchronisation. Quand le plugin émet un webhook pour une sauvegarde de produit, il devrait parcourir la taxonomie
tridde WPML oupost_translationsde Polylang, trouver chaque traduction liée et émettre une seule charge utile avec toutes les versions de langue. Pour TranslatePress, le plugin devrait interroger les tables du dictionnaire et consolider. - Échanger l'URL sur la recommandation. Quand le chat choisit un produit à recommander, il choisit l'URL qui correspond au code de langue du visiteur, pas l'URL du coup d'index.
Comment Emporiqa gère WPML, Polylang et TranslatePress
Le plugin Emporiqa détecte automatiquement quel plugin de traduction est installé et interroge le bon mécanisme de regroupement. À la sauvegarde du produit, le plugin émet un seul webhook pour le produit avec une carte translations : {en: {name, description, slug, url}, fr: {…}, de: {…}}. Le chat indexe les trois comme un seul produit logique.
Le widget lit la langue de la page à partir de ICL_LANGUAGE_CODE (WPML), pll_current_language() (Polylang) ou le préfixe d'URL TranslatePress et la passe à chaque conversation. Le chat cherche parmi toutes les variantes de langue et recommande avec l'URL correspondante.
Si vous avez localisé des champs personnalisés (chaînes ACF, étiquettes d'attributs dans des endroits non standard), le plugin expose un filtre :
add_filter('emporiqa_product_translations', function($translations, $product) {
foreach ($translations as $lang => &$data) {
$data['custom_label'] = pll_translate_string('Default Label', $lang);
}
return $translations;
}, 10, 2);
Ce filtre s'exécute une fois par produit à la sauvegarde, donc l'index du chat reflète quelle que soit la logique de traduction que votre boutique utilise.
Comment tester un plugin de chat sur votre boutique multilingue
Avant de vous engager dans un plugin de chat sur une boutique WPML, Polylang ou TranslatePress, exécutez ce test de cinq minutes :
- Ouvrez la vitrine dans votre deuxième langue. Si votre boutique est anglais maître et français secondaire, naviguez vers
/fr/. - Posez au chat une question spécifique de produit en français. Utilisez une phrase qui correspond uniquement à la description du produit français, pas l'anglais. « Avez-vous une lampe de chevet en bois ? » fonctionne si « bedside lamp wood » est comment la version anglaise lit.
- Vérifiez la langue de la réponse. Le chat devrait répondre en français, pas en anglais.
- Cliquez sur le lien du produit recommandé. L'URL devrait être l'URL française (
/fr/...), pas l'URL maître. - Répétez pour toute troisième langue que la boutique supporte.
Tout échec sur ces quatre points signifie que le chat casse sur la traduction. La boutique fuira la conversion à chaque session de langue non maître, et le tableau de bord du chat ne montrera pas la perte car la conversation s'est complétée.
Ce que cela ne fait pas
- Traduire automatiquement le contenu non traduit. Si un produit existe en anglais uniquement et qu'un acheteur français le demande, le chat ne l'inventera pas une version française. Il dira à l'acheteur que le produit n'est pas disponible en français et suggère l'alternative traduite la plus proche. Les boutiques qui veulent la traduction automatique devraient exécuter d'abord l'étape de traduction automatique de leur plugin de traduction.
- Traduire l'interface utilisateur du widget de chat. Le widget supporte 65+ langues, mais les étiquettes sont choisies parmi un ensemble fixe. Les chaînes UI personnalisées (accueil, ouverture, messages) doivent être configurées par langue dans l'admin Emporiqa.
- Synchroniser les différences de stock ou de tarification spécifiques à la langue. Si votre boutique définit des prix différents par langue (rare mais réel), exposez cela via le filtre WordPress ci-dessus. La synchronisation par défaut utilise un prix par produit.
Pourquoi cela importe le plus pour les boutiques qui vendent en 3+ langues
Pour une boutique monolingue, la gestion multilingue est discutable. Pour une boutique avec l'anglais plus une langue secondaire, vous pourriez tolérer le modèle de traduction à l'exécution et ne pas perdre beaucoup. Par la troisième langue, le coût de traduction à l'exécution s'accumule et les échecs d'inadéquation de recherche deviennent visibles dans les données de rebond.
Si votre boutique vend en trois langues ou plus, le plugin de chat que vous choisissez déterminera tranquillement votre taux de conversion sur vos marchés secondaires. Le test de cinq minutes ci-dessus est le moyen le moins cher de savoir ce que vous obtenez avant de signer un an de frais mensuels.
Lecture connexe : le cas multilingue entre plates-formes dans vos clients allemands partent, les échecs spécifiques à WC autour des produits variables, l'impact de la migration HPOS et la survie à la charge de pointe. Pour la présentation complète de la configuration WooCommerce, voir pourquoi la plupart des plugins de chat WooCommerce arrivent mal l'architecture.
Essayez la démo en direct à demo.emporiqa.com dans n'importe lequel des 65+ langues, ou installez le plugin sur une boutique bac à sable avec WPML ou Polylang. La couverture multilingue est documentée dans la documentation WooCommerce.