Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
j'ai suivi le turo très bien fait (comme tous les autres) sur Kitpages et je rencontre un problème que je n'arrive pas à résoudre par rapport à un site multilangue.
je placé dans mon index.php bootstrap le bout de code suivant :
Zend_Loader::loadClass('Zend_Registry'); Zend_Registry::getInstance(); if (!Zend_Registry::isRegistered("locale")) { Zend_Loader::loadClass("Zend_Locale"); $locale = new Zend_Locale(Zend_Locale::BROWSER); $localeFr = new Zend_Locale("fr"); $localeFrfr = new Zend_Locale("fr_FR"); if (!$locale->equals($localeFr)) { if ($locale->equals($localeFrfr)) $locale = $localeFr; else $locale = new Zend_Locale("en"); } Zend_Registry::set("locale", $locale); Zend_Registry::get("logger")->debug("** locale non définie"); $locale = Zend_Registry::get("locale"); Zend_Registry::get("logger")->debug("** locale definie : $locale"); }
Je souhaite donc dans un premier temps détecter la langue du navigateur pour la sauvegader avec Zend_Registry. J'ai placé un test afin d'éviter de redéfinir la langue à chaque fois si celle-ci est déjà définie.
Dans mon site j'ai également un lien permettant de changer la langue manuellement. Lorsque je cllique dessus la page rechargée dans une balise <div> s'affiche bien avec la langue changée.
Ce que je ne comprend pas c'est qu'à chaque fois ma langue se redéfinie avec celle du navigateur. Il suffit pout cela de cliquer sur un lien.
Dans le fichier de log il s'ajoute à chaque fois que je clique sur un lien ou que je recharge une page :
DEBUG (7): ** locale non définie
DEBUG (7): ** locale definie : fr
et ce systématiquement.
Je pensais grâce à mon test
if (!Zend_Registry::isRegistered("locale"))
échapper à ce problème, mais il semble que quelque chose m'échappe.
Quelqun peut-il m'aider?
Dernière modification par verrec_s (04-10-2007 22:26:41)
Hors ligne
C'est un registre et non pas une session.
Ton registre est accessible tout au long de l'utilisation de ta page et non de ton application (session)
place ta locale dans une session et vérifie son existence. Si c'est le cas alors tu devrais avoir la langue valable sur la page précédente sauf si tu as demandé de changer de langue :p
Hors ligne
Ok, je vais rééssayer, car dans un premier temps c'est ce que j'avais fait sans meilleur résultat. C'est suite à cela que j'avais tenté le coup avec Zend_Registry
Hors ligne