Estoy iniciándome con Zend_framework, pero no consigo poder usar el "translate" desde cualquier punto de la aplicación (controladores, db_table, etc...)
Ahora mismo tengo esto en el Bootstrap
Código PHP:
protected function _initLang(){
//Traduccion
$translate = new Zend_Translate('array', APPLICATION_PATH . DS . 'resources' . DS . 'languages' . DS . 'es' . DS, 'es');
$registry = Zend_Registry::getInstance();
$registry->set('Zend_Translate', $translate);
}
Código PHP:
public function getCategory($id)
{
$row = $this->fetchRow('id_category = '. (int)$id);
if (!$row) {
throw new Exception($this->translate("Categoria no encontrada"));
}
return $row->toArray();
}
Código:
(Sí, la línea 12 de ese fichero es la del throw)Fatal error: Call to undefined method Application_Model_DbTable_Categories::translate() in /application/models/DbTable/Categories.php on line 12
En este momento, para usar las traducciones desde los controladores, lo tengo puesto así (creo que no es lo más correcto):
Código PHP:
protected $lang;
public function init()
{
/* Initialize action controller here */
$this->lang = Zend_Registry::get('Zend_Translate');
}
Código PHP:
$this->view->msg = sprintf($this->lang->translate("Categoria actualizada"), $datos['name_category']);
Código PHP:
$this->_("Traduce esto");