Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 29-12-2010 15:39:24

ziedb
Membre
Lieu: Tunis
Date d'inscription: 24-03-2008
Messages: 224

[Résolu] ZF1.11 View Helper - Translate

Mon code comporte le view helper et le plugin de Traduction ci dessous. Il sont fonctionnels à un détail près.

Code:

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):

Code:

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

Code:

$login = $this->translate('Bienvenu').'  '. $auth->getIdentity ()->prenom

 ....

Dernière modification par ziedb (29-12-2010 19:27:09)

Hors ligne

 

#2 29-12-2010 17:16:05

Delprog
Administrateur
Date d'inscription: 29-09-2008
Messages: 670

Re: [Résolu] ZF1.11 View Helper - Translate

Salut,

Pour accéder à une aide de vue depuis une autre, il faut passer par l'objet view.

Code:

$login = $this->view->translate('Bienvenu') . '  ' . $auth->getIdentity ()->prenom;

A+ benjamin.


http://www.anonymation.com/ - anonymation - Studio de création.
http://code.anonymation.com/ - anonymation - blog - développement et architecture web

Hors ligne

 

#3 29-12-2010 19:25:43

ziedb
Membre
Lieu: Tunis
Date d'inscription: 24-03-2008
Messages: 224

Re: [Résolu] ZF1.11 View Helper - Translate

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

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages