[Résolu] Impossible to override WPML default language detection functionality.
Ce sujet est résolu. Voici une description du problème et de la solution.
Problème :
Le client ne parvient pas à outrepasser la fonctionnalité de détection de langue par défaut de WPML pour mettre en place une fonctionnalité de navigation régionale basée sur des cookies. Même après avoir désactivé la redirection automatique basée sur la langue du navigateur, le site charge la langue par défaut ou celle du navigateur lorsqu'un nouvel onglet est ouvert.
Solution :
Nous avons conseillé au client de ne pas utiliser la redirection automatique pour éviter les problèmes d'indexation et de référencement. Nous avons suggéré d'inspecter les cookies "selected_region" et "wp-wpml_current_language". Mais en fait c'est le cookie personnalisé "selected_region" qui ne se met pas à jour en fonction de l'URL visitée. Nous avons suggéré au client d'utiliser les hooks WPML pour récupérer la langue actuelle de la page visitée et passer cette valeur au cookie personnalisé si nécessaire.
Les hooks pertinents sont :
Si la solution proposée ne s'applique pas à votre cas ou semble obsolète, nous vous recommandons de vérifier les problèmes connus sur https://wpml.org/known-issues/, de vérifier la version de la correction permanente et de confirmer que vous avez installé les dernières versions des thèmes et plugins. Si le problème persiste, n'hésitez pas à ouvrir un nouveau ticket de support sur notre forum.
Il s'agit du forum d'assistance technique de WPML, le plug-in multilingue pour WordPress.
Il est accessible à tous, toutefois seuls les clients de WPML peuvent y publier leurs messages. L'équipe du WPML répond sur le forum 6 jours par semaine, 22 heures par jour.
Current issue: Impossible to override WPML default language detection functionality.
We use WPML plugin for language management.
At the same time time we need to add a region navigation feature, where user will select his region, which may be different from its location or browser language.
The problem we have, is that our functionality can not override WPML default browser locality detection and we can not set the language we need.
In our case, selected region is stored in browser cookies. All works well after region selection within one browser tab.
WPML selects the language of the website earlier than it comes to any of our functionality.
What would be great to have is a feature or add-on that either:
- provides a setting to WPML that picks a language from cookie
or
- allows to override default WPML behavior and allows us to set website version before it’s done by WPML.
Les langues: Anglais (English )Français (Français )
Fuseau horaire: America/Lima (GMT-05:00)
Bonjour,
Merci d'avoir contacté le support de WPML. Je vais répondre en Français car nous sommes sur le forum FR mais si vous préférez l'Anglais dites le moi.
De manière générale, je ne recommande pas l'utilisation de la redirection automatique. Lorsque vous activer cette option, nous avons une pop-up d'avertissement sur les effets de cette option sur l'indexation et le référencement.
Ceci étant dit, vous dites avoir désactivé l'option donc elle ne redirigera plus les visiteurs suivant la langue du navigateur.
J'ai essayé de visité le site mais il est cassé. J'ai réussi à aller sur le site staging.sda à la place. Je ne sais pas si c'est la même configuration mais mon navigateur est EN et j'arrive bien à voir la version DE même après plusieurs rafraichissement de la page ou en ouvrant d'autres pages dans d'autres onglets.
En inspectant le code source même chose, les deux cookies "selected_region" et "wp-wpml_current_language" ont la même valeur "de"
- Pourriez-vous m'expliquer en détails comment reproduire l'erreur?
- Pourriez-vous m'en dire plus sur la solution utilisée pour les régions?
- Je vois un autre plugin "User IP and Location" peut être que c'est ce plugin qui redirige les visiteurs?
Regardez notamment
- "wpml_current_language" qui vous donne la langue actuelle
- "wpml_switch_language" qui vous permet de changer la langue
Avec cela vous devriez pourvoir vérifier si la langue actuelle est la même que celle de votre solution et si elle est différente vous pouvez changer de langue.
It works well in one tab, meaning that we don’t have random language switching while surfing the website.
Remaining issue - mismatch between region and laguage if user opens a new tab (e
Les langues: Anglais (English )Français (Français )
Fuseau horaire: America/Lima (GMT-05:00)
Bonjour,
Oui, j'avais compris le problème à l'envers, je pensais vous aviez du texte Anglais sur la version Allemande. Mais en fait c'est le cookie "selected_region" qui ne se met pas à jour en fonction de l'URL. J'ai fait une vidéo explicative: lien caché
Il ne s'agit pas d'un problème WPML ici. Vous pouvez utiliser "wpml_current_language" pour mettre à jour votre propre cookie.