|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Inscription : janvier 2007 Messages : 41 ![]() |
Bonjour,
Quelqu'un a déjà fait un petit helper pour les langues? Personellement, j'instancie la classe Zend_Translate dans le bootstrapper et je le met dans le registry. Ensuite dans la fonction init de chaque contrôleur, je récupère l'objet et je le passe à la vue: Code :
$this->view->translate = Zend_Registry::get('translate'); Code :
<?php echo $this->translate->_("Home: Title"); ?> |
|
|
00
|
|
|
#2 | ||
|
Membre éclairé
![]() |
Perso j'ai juste déplacer la récupération dans un helper comme ça j'ai pas à la faire dans tous les controllers....
Après à voir peut être qu'un plugin peut être bien aussi... Code :
|
||
|
00
|
|
|
#3 | |
![]() ![]() Jean-Pierre Inscription : août 2005 Messages : 333 ![]() |
Citation:
Le Helper simplifie les choses et te permet de réutiliser ton code dans d'autres projets ou de le transmettre à d'autres développeurs de la manière la plus orientée objet qui soit En terme de perfomances, le helper sera instancié une seule fois et ton adapteur Zend_Translate avec (une seule et unique fois lui aussi). Ensuite ce sont simplement des appels succèssifs de méthodes. C'est totalement acceptable point de vue performances. Les machines actuelles font la différence. Et d'ailleurs il existe bien des moyens d'optimiser l'exécution du code en production... La solution du bootstrap est rébarbative...Elle implique de ne pas oublier le "$this->view->translate" dans chaque controlleur, alors que tu peux facilement automatiser cette affectation avec View_Helper. Et ça ne fait pas une différence remarquable au niveau du temps d'exécution. Bye
__________________
Mes articles DVP : http://jp-grossglauser.developpez.com |
|
|
|
00
|
|
|
#4 | ||
|
Invité de passage
![]() Inscription : août 2008 Messages : 16 ![]() |
ok pour les view (via le helper)
mais quid pour l'utiliser dans les controlleurs? J'ai créé une classe à appeler dans les controlleur, je l'appèle via : UDF_Translate::translate->('NOM_DU_LABEL') voila ma classe : Code :
je ne comprends pas pourquoi il ne me renvoit pas la traduction voulue pour cette clé. le plus étrange, c'est que si je remplace $message par la vraie clé en texte, la ca fonctionne donc : return $translate->_('NOM_DU_LABEL'); Quelqu'un aurait une idée? P.S: les autres fonction de la classe translate fonctionnent, la fonction qui renvoit tous les labels fonctionne bien quand je l'utilise, ca me renvoit bien un array avec toutes les traductions. Pour quoi donc avec une variable qui contient la clé ca ne fonctionne pas? Merci d'avance, et dites moi si je ne suis pas assez clair ou si vous avez besoin de plus d'infos pour me répondre |
||
|
|
00
|
|
|
#5 |
|
Membre du Club
![]() Sébastien GUARYInscription : avril 2007 Messages : 38 ![]() |
Cela dans ton controller devrait fonctionner
|
|
00
|
Copyright © 2000-2012 - www.developpez.com