Foros del Web » Programando para Internet » PHP » Zend »

Zend + Tanslate + Twig

Estas en el tema de Zend + Tanslate + Twig en el foro de Zend en Foros del Web. Hola a todos nuevamente con un inconveniente que tengo, actualmente estoy tratando de trabajar con un sitio multi-idioma, para ello he seguido el video de ...
  #1 (permalink)  
Antiguo 23/02/2012, 16:25
Avatar de Bellenger  
Fecha de Ingreso: noviembre-2004
Ubicación: En un lugar del Mundo...
Mensajes: 599
Antigüedad: 20 años
Puntos: 4
Zend + Tanslate + Twig

Hola a todos nuevamente con un inconveniente que tengo, actualmente estoy tratando de trabajar con un sitio multi-idioma, para ello he seguido el video de #pablomorales, aqui el video, todo funciona perfectamente, hasta que intente la integracion con el engine de Twig, normalmente deberia usar en mi view algo como esto:
Código PHP:
echo $this->translate->_('home.title'); 
pero en twig en teoria (digo teoria por que no se como se hace), seria asi:
Código PHP:
{{ transalte._('home.title') }} 
Alguien que haya tenido este inconveniente?? otro detalle que tengo con el translte es como poder acceder a el desde los controladores, he encontrado que en google que lo registran asi:
Código PHP:
Zend_Registry::set('translate'$translate); 
y en el controller lo usan asi:
Código PHP:
$this->translate Zend_Registry::get('translate');
....
$this->view->mensaje $this->translate->_('registro.mensaje'); 
habra alguna forma de acceder a el sin el registry?.
otra forma de acceso que vi era esta:
Código PHP:
$this->view->mensaje $this->view->translate('registro.mensaje'); 
Sera que se puede acceder directamente algo asi:
Código PHP:
$this->view->mensaje $this->translate('registro.mensaje'); 
Esta forma me parece mas ideal,sera que se puede?
Alguien que haya resuelto estos casos?
__________________
Un Caballero Jura Lealtad. Usa su espada para suprimir la Injusticia No Conoce el Odio y Tampoco el AMOR...

Última edición por Bellenger; 23/02/2012 a las 16:51 Razón: Me olvide algo...
  #2 (permalink)  
Antiguo 23/02/2012, 16:57
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Zend + Tanslate + Twig

Puedes poner en el init el registry, y no, no hay forma de ponerlo directamente a $this->translate ya que es una dependencia extra.

Respecto a Twig, no conozco bien ese sistema de plantillas.

Saludos.
  #3 (permalink)  
Antiguo 23/02/2012, 17:13
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 10 meses
Puntos: 845
Respuesta: Zend + Tanslate + Twig

El _ es un shortcut a translate, probaste con translate.translate('message') ?, con respecto a lo otro, ten en cuenta que siempre puedes extender Zend_Controller_Action ;) y bueno Zend tienes muchas cosas buenas pero ese Zend_Registry no es una de ellas.

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #4 (permalink)  
Antiguo 23/02/2012, 18:27
Avatar de Bellenger  
Fecha de Ingreso: noviembre-2004
Ubicación: En un lugar del Mundo...
Mensajes: 599
Antigüedad: 20 años
Puntos: 4
Respuesta: Zend + Tanslate + Twig

Efectivamente #masterpuppet he provado la forma que me indicas y funciona ok, en cuanto al (_) al parecer era un tema de config del twig la verdad no entiendo que cosa, pero volvi a configurarlo y ahora funciona sin problemas, en cuanto a extender de Zend_Controller_Action... he de entender que crear un metodo que acceda al Zend_Translate directamente, y obtenga el key que necesito, si es asi pues efectivamente eso fue lo que hice, por ahora funcional otro detalle, al que me estoy enfrentando es la url adecuada para manejar los idiomas, siguiendo el video de #pablomorales, las url las estoy usando asi:
Código PHP:
http://miweb.com/producto/listar?lang=es 
revisando algunas webs he visto que usan asi:
Código PHP:
http://miweb.com/producto/listar/lang/es 
esta ultima forma me parece mas legible incluso he visto que logran colocarlo al principio asi:
Código PHP:
http://miweb.com/lang/es/producto/listar/ 
y por ahi no recuerdo donde exactamente pero vi asi:
Código PHP:
http://miweb.com/es/producto/listar/ 
actualmente estoy trabajando con un solo idioma, pero he de implementar multidioma, cual seria la mejor manera de trabajar las url para sitios multidioma, desde mi punto de vista la tercera opcion es las mas limpia, pero no logro hacer funcionarla asi... alguna recomendacion ? algun ejemplo sobre como trabajar multidiomas? con modulos inclusive...
Saludos y gracias nuevamente.
__________________
Un Caballero Jura Lealtad. Usa su espada para suprimir la Injusticia No Conoce el Odio y Tampoco el AMOR...
  #5 (permalink)  
Antiguo 23/02/2012, 18:49
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 10 meses
Puntos: 845
Respuesta: Zend + Tanslate + Twig

Puedes agregar como propiedad del controller el translator, y lo inicializas en el init o bien lazy loading.
Con respecto al multi-lang, personalmente utilizo la última opción y es algo relativamente sencillo de conseguir, te dejo una referencia, http://www.m4d3l-network.com/develop...ework-project/.

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)

Etiquetas: twig, zend-translate, zend-translate-twig, zend-twig, translator
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:58.