Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
j'ai une question à propos de l'utilisation de Zend_route et du multi-lingue
j'intialise mes routes dans mon bootstrap, j'ai une fonction _initRoute qui en gros va lire un fichier xml dans lequel mes paramètre de routes sont défini, puis loop sur chaque route et les ajouter à zend_router.
je prend ici l'exemple de deux routes que je veux définir, elle pointent vers le même action/controller, mais doivent définir une langue différent
login.html doit pointer vers la le controller login action index, inscription.html doit faire pareil mais avec le paramètre de alngue en francais.
voilà ma définition de route en anglais
$route = new Zend_Controller_Router_Route_Regex('login.html?', array( 'controller' => 'login', 'action' => 'index' ), array(), 'login.html');
et celel en francais
$route = new Zend_Controller_Router_Route_Regex('inscription.html?', array( 'controller' => 'login', 'action' => 'index' ), array(), 'inscription.html');
dans mon bootstrap j'ai aussi une methode setLanguage($codelangue) qui recoit donc mon code de langue et change la langue à utiliser.
Pourriez vous m'éclaire sur le comment passer le paramètre de langue à ma route, et comment, lors du chargement de ma page (quelque par dans al bootstrap je suppose) faire en sorte de pouvoir utiliser le paramètre de langue précisé dans la route pour le passer à setLanguage()
P-e faire quelque chose dans ce genre la (mais je ne sais pas quelle synthaxe utiliser dans mon boostrap pour récupérer la langue)
$route = new Zend_Controller_Router_Route_Regex('inscription.html?', array( 'controller' => 'login', 'action' => 'index', 'lang' => 'fr' ), array(), 'inscription.html');
merci d'avance
Dernière modification par Lopimp (01-10-2009 11:00:37)
Hors ligne
Je trouve pas mal d'infos sur le web pour faire des routes avec langue, mais le problème c'est que la langue est spécifiée dans l'url.
Moi je ne veux pas de fr ou en dans mon url, je veux juste que le nom utilisé pour la route soit unique et que donc une fois utilisé le controller/action et la langue soient automatiquement détexté
inscription est spécifié en lang fr et login en en
Hors ligne
Dans le bootstrap, tu ne peux pas avoir accès aux informations de routage, c'est trop tôt.
Je t'invite à aller voir ce thread :
http://www.z-f.fr/forum/viewtopic.php?id=4115
A+, Philippe
Hors ligne
donc y'a aucun moyen de faire router
inscription.html vers le controleur login action index langue FR
et
login.html vers le controleur login action index langue EN
c'est étrange quand même :s
Je pourrais certainement trouver un moyen de le faire en chipotant un peu et en sortant un peu de zend, mais à mon avis Zend doit permettre quelque chose comme ca.
merci en tout cas pour le lien je vais lire ca
Hors ligne
Hello,
Les routes traduites existent : http://framework.zend.com/manual/en/zen … d-segments
Ce n'est pas cela que tu souhaites ?
@+
Hors ligne
Pour envoyer ton paramètre de langue à ta route il suffit de faire :
$route = new Zend_Controller_Router_Route_Regex('login.html?', array( 'controller' => 'login', 'action' => 'index', 'languageCode' => 'en' ), array(), 'login.html');
Par contre ton setLanguage, il ne faudra pas le faire dans le bootstrap, il faudra le faire dans un plugin.
Lis le thread que je t'ai envoyés, c'est expliqué dans le détail.
A+, Philippe
Hors ligne
merci philippe, mais comment affiche tu l'url d'un lien?
j'utilise assemble() dans lequel je passe un array avec mon controleur action et langue, (comme défini dans ma route) mais il ne m'affiche pas l'url dans la bonne langue.
merci pour votre aide encore une fois
Hors ligne
Je n'utilise pas assemble() donc je ne suis pas expert, mais c'est vrai que dans ton cas, ça ne me paraît pas gagné d'avance... il faudrait lui donner le nom de la route, mais là on perd un peu l'intérêt du système...
Si il y a un champion de assemble(), je le laisse répondre.
A+, Philippe
Hors ligne
Tjrs personne qui aurait dev ca?
Hors ligne
Pages: 1