Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 16-06-2010 09:33:25

joatack
Membre
Date d'inscription: 16-06-2010
Messages: 11

Récupération Locale via session dans Zend_View_Helper_Translate

Bonjour,

J'ai parcouru pas mal de tutos et docs concernant le zend_translate mais impossible de le faire fonctionner.......encore une bêtise quelque part ^^ :

J'initialise le translate et la session via mon application.ini chargé dans le zend_application :

Code:

...
; Session
resources.session.save_path = APPLICATION_PATH "/cache"
resources.session.use_only_cookies = true
resources.session.remember_me_seconds = 864000

; Locale
resources.locale.registry_key = "Zend_Locale"
resources.locale.default = "en"

; Translate
resources.translate.registry_key = "Zend_Translate"
resources.translate.adapter = "array"
resources.translate.data = APPLICATION_PATH "/languages"
resources.translate.options.scan = "filename"
resources.translate.options.logUntranslated = true
...

Ensuite dans mon boot strap j'initialise un locale par défaut dans un session_namespace :

Code:

...
$session = new Zend_Session_Namespace('translate');
$session->locale = "en_US";
...

Puis pour toute mes views, j'ai un Zend_View_Helper_Translate qui récupère le locale dans la session et initialise l'objet zend_translate récupéré dans le registry :

Code:

class Zend_View_Helper_Translate{
 
    /**
     * @var Zend_Translate
     */
    protected $_translate = null;
 
    public function translate($message, $param = null)
    {
        $session = new Zend_Session_Namespace('translate');
        
        $registry = Zend_Registry::getInstance();
        $this->_translate = $registry->get('Zend_Translate');

        $this->_translate->setLocale($session->locale);
        
        echo $this->_translate->_($message);
    }
}

Mon problème vient quand je veux changer le locale, j'appelle une action translateAction qui me change le locale en session et me redirige vers le home :

Code:

    function translateAction()
    {
        $session = new Zend_Session_Namespace('translate');
        
        $session->locale = 'fr_FR';

        $this->_redirect('home/');
    }

Mon problème est que dans le Zend_View_Helper_Translate, appelé lors de la redirection (donc après le changement du locale en session), c'est toujours en_US dans le locale en session.....

Merci pour votre aide,

Jo

Hors ligne

 

#2 17-06-2010 08:24:56

keilnoth
Membre
Date d'inscription: 30-08-2008
Messages: 128
Site web

Re: Récupération Locale via session dans Zend_View_Helper_Translate

Bin oui, c'est logique... Tu fais un redirect donc tu rappelles ton bootstrap donc tu redéfinis en_US dans ta session. smile

Ton bootstrap ne devrait pas définir la langue sauf si elle n'est pas définie ou si elle est passée en paramètre.


Quelques tutoriaux Zend Framework !

Hors ligne

 

#3 18-06-2010 11:36:46

joatack
Membre
Date d'inscription: 16-06-2010
Messages: 11

Re: Récupération Locale via session dans Zend_View_Helper_Translate

Ouai j'ai vu ça par après.....une bêtise comme je disais ^^.

Merci pour ta réponse,

++

Jo

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