Soucis de navigation entre les langues avec plugin MyMultiLingue
Bonjour,
Considérons que je n'utilise pas le plugin MyBetterUrls.
Lorsque je me mets dans une langue que je je copie/colle l'URL d'un article écrit dans une autre langue, j'accède bien à cet article, mais en revanche la langue du site reste celle par défaut (ou bien dans celle que j'ai choisi lors de ma dernière navigation).
Serait-il possible que le changement de langue de pluxml puisse s'opérer sur l'URL ?
ex: http://FQDN/en/CHEMIN change la langue en anglais.
Matthieu
Considérons que je n'utilise pas le plugin MyBetterUrls.
Lorsque je me mets dans une langue que je je copie/colle l'URL d'un article écrit dans une autre langue, j'accède bien à cet article, mais en revanche la langue du site reste celle par défaut (ou bien dans celle que j'ai choisi lors de ma dernière navigation).
Serait-il possible que le changement de langue de pluxml puisse s'opérer sur l'URL ?
ex: http://FQDN/en/CHEMIN change la langue en anglais.
Matthieu
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Effectivement, la gestion de la langue est géré en partie par la langue mais aussi par un cookie : ce qui peut amener des problèmes si on ouvre plusieurs versions de la même page dans différentes langues, et qui provoque le problème que tu soulèves.
Il faudrait probablement revoir la manière dont le multi-lingues est géré ... mais ce n'est pas trivial : pour le moment, il faut donc faire avec.
Merci pour ta réponse.
En me basant sur ce que tu m'as dis, j'ai pensé qu'il était possible de changer de langue en changeant le cookie plxMyMultiLingue à la requête de la page.
J'ai donc mis en place une série de règles dans varnish pour réécrire ce cookie en fonction de la langue dans l'URL, avant que la requête n'arrive sur le serveur web.
En pratique le cookie est bien modifié, et pluxml redonne la bonne langue. Mais le cookie ne semble avoir aucune incidence la variable "default_lang()" (dans mon thème il reste sur la langue où je l'ai laissé).
Dommage.
Mais en fait c'est le cookie de session qui conditionne tout.
Si je change de langue en cliquant sur un drapeau de langue, la langue est stockée dans le cookie de session côté serveur dans /var/lib/php5/. Si je modifie manuellement la langue dans le cookie du serveur, la langue change bien au premier rafraîchissement du navigateur.
Il faut croire qu'on ne peux pas conditionner le changement de langue sans visiter les URL en /lang=XX.