Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Mon code comporte le view helper et le plugin de Traduction ci dessous. Il sont fonctionnels à un détail près.
class Zend_View_Helper_LoginHelper extends Zend_View_Helper_Abstract {
public function LoginHelper($baseurl) {
$auth = Zend_Auth::getInstance ();
if ($auth->hasIdentity ()) {
$login = 'Bienvenu'.' '. $auth->getIdentity ()->prenom
. ' ' . $auth->getIdentity ()->nom
.' '.'<a href="'
.$baseurl
.'/services/auth/logout">'
.'(Logout)</a>';
}else{
$login ='<a href="'.$baseurl.'/services/auth/login">Login</a>';
}
return $login;
}
}Mon application comporte un plugin de traduction (inspiré du tutoriel publié sur le site www.dator.fr):
class Plugin_Translate extends Zend_Controller_Plugin_Abstract {
protected $_view;
public function __construct($view){
$this->_view = $view;
}
public function routeShutdown($view) {
// on récupère le paramètre de la langue dans l'url
$locale = $this->getRequest()->getParam('language');
// On lance notre Translate (avec les différents fichiers).
$translate = new Zend_Translate('array',APPLICATION_PATH.'/languages/fr_FR.php','fr');
$translate->addTranslation(APPLICATION_PATH.'/languages/en_US.php','en');
// On stoque notre locale (fr ou en) dans notre registre.
Zend_Registry::set('Zend_Locale', $locale);
// si la langue demandé ne possède pas de traduction
if (!$translate->isAvailable($locale)) {
// on change la langue par defaut (en) dans notre traduction.
$translate->setLocale('en');
// et on ajoute à la variable de vue la langue 'en'
$this->_view->language = 'en';
} else {
$translate->setLocale($locale);
$this->_view->language = Zend_Registry::get('Zend_Locale');
}
Zend_Registry::set('Zend_Translate', $translate);
Zend_Form::setDefaultTranslator($translate);
Zend_Validate_Abstract::setDefaultTranslator($translate);
}
}Quand je remplace la première ligne avec le code suivant dans le view helper, ça génère une erreur
$login = $this->translate('Bienvenu').' '. $auth->getIdentity ()->prenom
....Dernière modification par ziedb (29-12-2010 19:27:09)
Hors ligne
Salut,
Pour accéder à une aide de vue depuis une autre, il faut passer par l'objet view.
$login = $this->view->translate('Bienvenu') . ' ' . $auth->getIdentity ()->prenom;A+ benjamin.
Hors ligne
Merci. je m'en suis rendu compte après avoir fait le post mais mnt je suis confronté à un autre problème lié au routage.
Dernière modification par ziedb (29-12-2010 19:26:41)
Hors ligne
Pages: 1