Si j’appelle ma page sans mettre de paramètre langue dans l’URL, la première ligne s’affiche en français (langue principale du site), en prenant bien entendu la traduction adéquate dans le fichier de langue fr. Mais le formulaire de login est traduit en anglais !
En appelant la page avec un paramètre lang=fr tout est bien en français, mais il n’est pas toujours possible de mettre ce paramètre, notamment dans le cas d’un lien dans le texte d’un article (voir->99)
J’ai essayé de mettre les 2 lignes ci-dessus dans un modèle que j’appelle avec {lang} ou même {lang=fr}, c’est pareil, le formulaire de login est toujours en anglais !
Que puis-je faire pour qu’il soit dans la même langue que ce qui précède, sans paramètre langue ?
forcer_lang n’a aucun rapport avec « une personne connectée », mais avec le visiteur (qui peut parfaitement être anonyme), qui peut donc avoir un cookie de langue (si t’as un formulaire ou des liens pour choisir la langue), et si ya pas de cookie, ça prend la langue du navigateur, si elle existe dans les langues choisies pour le site… sinon la langue par défaut du site
et donc tu n’as pas indiqué la langue par défaut de ton site aussi il me semble (ou j’ai raté)
chelou quand même que la chaine de langue et le formulaire ne prenne pas la même langue si les deux sont placés au même endroit (à la racine d’un squelette, sans contexte passé ?), jamais vu ça en ce qui me concerne
En gros, juste avant de charger #FORMULAIRE_LOGIN, on vérifie que le contexte de la page contient un id_article ; on récupère la valeur lang associée à ce dernier, et on l’assigne manuellement, en remplacement de la valeur par défaut du site #CONFIG{langue_site}
Est-ce tu peux confirmer que cela fonctionne ? (?var_mode=recalcul est nécessaire)
Dès que j’appelle FORMULAIRE_LOGIN dans une page qui ne spécifie pas une langue ( &lang=xx dans l’URL) celui-ci est en anglais. J’ai trouvé une raison, c’est vraisemblablement parce qu’il y a un cookie lang=en qui est présent. Mais je ne vois pas bien la raison de la raison. Par quoi ce cookie a été envoyé à mon navigateur ce matin, alors que je n’ai pas choisi l’anglais, que je n’ai aucun #MENU_LANG dans mes squelettes, ni rien dans mon propre code qui envoie des cookies ? Peut être faudrait-il justement que j’envoie ce cookie quand je sélectionne une langue…
Je ne vois pas non plus pourquoi il détermine la langue du formulaire et pas celle du texte traduit (du moins lorsqu’on n’a pas $GLOBALS['forcer_lang'] = true;) . Il y a là une incohérence, à mon avis.
Tant pis. Soit je vais essayer d’envoyer le cookie au changement de langue, soit je continuerai à afficher le formulaire de login sur une autre page appelée avec un paramètre lang, ce qui fonctionne bien.