Tema: Zend y SEO
Ver Mensaje Individual
  #7 (permalink)  
Antiguo 09/06/2011, 05:37
antoniojim
 
Fecha de Ingreso: marzo-2005
Ubicación: Málaga
Mensajes: 115
Antigüedad: 19 años, 9 meses
Puntos: 0
Respuesta: Zend y SEO

Hola de nuevo.

La verdad es que ya me estoy decidiendo y optando por cosas.

Para el tema de las palabras traducidas, he optado por gettext, por todo lo que leo es lo más rápido a nivel de ejecución.

Para el tema de SEO, lo que he hecho es crear un archivo .ini (al final lo estudié y es más sencillo que el CVS aunque lo tenga que editar luego el cliente). Lo que hagao es añadirle un translation más, y luego lo recojo haciendo un script según el controller y el action.

Y los textos los he introducido en la base de datos porque luego el cliente los podrá administrar y como lleva etiquetas HTML, el cliente no lo va a saber manejar, así que a través de un CMS con un editor lo controlarará.

Ahora, tengo problemas con el tema de la traducción de los segmentos del router.

Para manejar la web, lo que hago es que cuando tengo una dirección, como idioma por defecto cojo "es" y cuando delante de la dirección tengo "en", pues cojo inglés, un ejemplo sería este: dominio.com/sobrenosotros para español y dominio.com/en/sobrenosotros para el inglés.

Para eso utilizo este router:

Código PHP:
$router->addRoute(
            
'lang',
            new 
Zend_Controller_Router_Route(
              
'en/:controller/:action/*',
              array(
                     
'controller' => 'index',
                     
'action' => 'index',
                     
'lang'=>'en'
              
)
             )
             ); 
y funciona a la perfeccción.

Pero ahora lo que quiero es hacer es las urls traducidas, para eso he seguido los ejemplos de la documentación de Zend, pero resulta que me da un error cuando hago el asemble, me dice Could not find a translator. Este es el código:

Código PHP:
$translate Zend_Registry::getInstance()->Zend_Translate;
            
Zend_Controller_Router_Route::setDefaultTranslator($translate);
         
            
$route=new Zend_Controller_Router_Route(
                            
':@controller/:@action/*',
                            array(
                                
'controller'=>'index',
                                
'action'=>'index'
                            
)
                            );
            
            
$router->addRoute('pageses',$route);
            
            
$route->assemble(array('controller'=>'index','action'=>'index'));
            
$route->assemble(array('controller'=>'index','action'=>'index'));