Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 14-08-2009 16:01:30

Treyarch
Nouveau membre
Date d'inscription: 14-08-2009
Messages: 2

[Résolu] [ZF 1.9] Problème de changement de langues

Bonjour à tous,

Je débute actuellement avec le Zend framework et j'ai réussi à monter mon appli comme je le souhaitai mais je suis bloqué sur un petit problème de changement de langues depuis 2 jours.

J'ai configuré mon routeur de la sorte dans mon bootstrap :

Code:

public function _initRoutes()
    {
        $router = Zend_Controller_Front::getInstance()->getRouter();
        $route = new Zend_Controller_Router_Route(
            ':language/:module/:controller/:action/*',
                array(
                    'language'   => 'en_EN',
                    'module'     => 'default',
                    'controller' => 'register',
                    'action'     => 'index'
                ), array('language' => '[a-z]{2}')
            );
        $router->addRoute('routes', $route);
    }

et ma locale et mes traductions de la sorte :

Code:

public function _initLocale(){
        $locale = new Zend_Locale();
        Zend_Registry::set('Zend_Locale', $locale);        
        $translate = new Zend_Translate('csv', 'languages', 'auto', array('scan' => Zend_Translate::LOCALE_FILENAME));
        if (!$translate->isAvailable($locale)) {
            $translate->setLocale('en_US');
        }
        Zend_Registry::set('Zend_Translate', $translate);
    }

Tout fonctionne niquel, j'accède à mes page de la sorte : http://www.monsite/fr/controller/action mais par contre je suis actuellement incapable de faire changer de langue via mon URL:

http://www.monsite/en/controller/action
http://www.monsite/de/controller/action

defaultent toujours sur le français quoiqu'il arrive. J'ai tout essayé (avec mes connaissances Zend framework récentes bien sur).

J'ai essayé de récupérer la langue avec $this->getRequest->getParam('language') dans mon controlleur et de passer la valeur via Zend_Registry::set('Zend_Translate', $this->getRequest->getParam('language')); mais cela ne fonctionne pas.

Je dois m'y prendre mal quelque part mais je ne sais où...

Dernière modification par Treyarch (18-08-2009 11:53:24)

Hors ligne

 

#2 18-08-2009 11:55:20

Treyarch
Nouveau membre
Date d'inscription: 14-08-2009
Messages: 2

Re: [Résolu] [ZF 1.9] Problème de changement de langues

Résolu avec la création d'un simple plugin qui gère les traductions.

Code:

class Plugin_Translate extends  Zend_Controller_Plugin_Abstract {

    public function routeShutdown() {
        $locale = $this->getRequest()->getParam('language');
        $translate = new Zend_Translate('csv', 'languages', 'auto', array('scan' => Zend_Translate::LOCALE_FILENAME));
        if (!$translate->isAvailable($locale)) {
            $translate->setLocale('en_US');
        } else {
            $translate = Zend_Registry::get('Zend_Translate');
            $translate->setLocale($locale);
        }
        Zend_Registry::set('Zend_Translate', $translate);
        Zend_Registry::set('Zend_Locale', $locale);
    }
   
}

et dans mon application.ini

Code:

resources.frontController.pluginDirectory = APPLICATION_PATH "/plugins"
resources.frontController.plugins.Translate = "Plugin_Translate"

Dernière modification par Treyarch (18-08-2009 11:56:05)

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