Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
J'essaie de mettre en place un système de traduction via gettext sur Zend..
En suivant des tutos, j'ai ajouté notamment dans mon bootstrap ...
protected function _initTranslate() { $translate = new Zend_Translate('gettext', APPLICATION_PATH . "/langs/", null, array('scan' => Zend_Translate::LOCALE_DIRECTORY)); $registry = Zend_Registry::getInstance(); $registry->set('Zend_Translate', $translate); $translate->setLocale('en'); } public function _initRoutes() { $this->bootstrap('FrontController'); $this->_frontController = $this->getResource('FrontController'); $router = $this->_frontController->getRouter(); $langRoute = new Zend_Controller_Router_Route( ':lang/', array( 'lang' => 'fr', ) ); $defaultRoute = new Zend_Controller_Router_Route( ':controller/:action', array( 'module'=>'default', 'controller'=>'index', 'action'=>'index' ) ); $defaultRoute = $langRoute->chain($defaultRoute); $router->addRoute('langRoute', $langRoute); $router->addRoute('defaultRoute', $defaultRoute); } protected function _initLanguage() { $front = Zend_Controller_Front::getInstance(); $front->registerPlugin(new My_Controller_Plugin_Language()); }
Lorsque je suis dans une vue si je fais
$this->translate("ma phrase");
Je n'ai pas d'erreur mais par contre, je n'arrives pas à avoir accès à la méthode "plural" de "translate"
En clair si je test dans mon bootstrap
echo $translate->plural('table', 'tables', 10, "fr");
ça fonctionne mais si je met dans une vue
echo $this->translate->plural('table', 'tables', 10, "fr");
J'ai cette erreur,
Fatal error: Call to a member function plural() on a non-object in
Voyez vous pourquoi ?
Merci par avance pour votre précieuse aide
Dernière modification par siriu (31-10-2011 19:27:16)
Hors ligne
Remplace tout simplement :
echo $this->translate->plural('table', 'tables', 10, "fr");
par
echo $this->translate()->plural('table', 'tables', 10, "fr");
Hors ligne