Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

DaRkShAfT

Configurar ZF com Multi-Language

Recommended Posts

Bom, você vai precisar de duas etapas. Uma delas é a reescrita da URL, para que, ao invés de site.com.br/controller/action ele fique site.com.br/lang/controller/action. Então, no seu application.ini você adiciona:

 

;; rotas - lang
resources.router.routes.lang.route = ":lang/:controller/:action/"
resources.router.routes.lang.defaults.module = default
resources.router.routes.lang.defaults.controller = index 
resources.router.routes.lang.defaults.action = index
resources.router.routes.lang.defaults.lang = vBR

 

Ao fazer isto, a URL já será reescrita a linguagem vai ficar disponível em $this->_request->getParam('lang') dentro do controller. Para fazer o site em multilinguas, aí você pode utilizar Zend_Translate.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, você vai precisar de duas etapas. Uma delas é a reescrita da URL, para que, ao invés de site.com.br/controller/action ele fique site.com.br/lang/controller/action. Então, no seu application.ini você adiciona:

 

;; rotas - lang
resources.router.routes.lang.route = ":lang/:controller/:action/"
resources.router.routes.lang.defaults.module = default
resources.router.routes.lang.defaults.controller = index 
resources.router.routes.lang.defaults.action = index
resources.router.routes.lang.defaults.lang = vBR

 

Ao fazer isto, a URL já será reescrita a linguagem vai ficar disponível em $this->_request->getParam('lang') dentro do controller. Para fazer o site em multilinguas, aí você pode utilizar Zend_Translate.

 

Carlos Eduardo

 

Oi,

 

Sim é isso aí...

 

Mas eu tenho outra questão, eu criando dois módulos admin/ e public/ posso ter configs diferentes?

 

É porque eu no módulo admin/ vou querer trabalhar normalmente /controller/action, somente no public/ é que vou querer deste modo /idioma/controller/action

 

Dá para configurar desta maneira?

 

[]

Compartilhar este post


Link para o post
Compartilhar em outros sites

O padrão é modulo/controller/action. Você pode trabalhar com configs separadas, mas não precisa. É só toda vez que você colocar uma URL do admin você definir como rota default.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

O padrão é modulo/controller/action. Você pode trabalhar com configs separadas, mas não precisa. É só toda vez que você colocar uma URL do admin você definir como rota default.

 

Carlos Eduardo

 

Oi,

 

Ok, para já vou querer meter a funcionar o módulo admin...

 

Eu já tenho a estrutura da aplicação configurada, agora estou com um probleminha...

 

Eu vou ter um layout diferente para cada módulo, por isso a directoria layout vai estar dentro de cada módulo... Eu sei que poderia colocar tudo na directoria layouts, mas eu optei por criar assim para ficar mais lógico...

 

Só que agora não sei como configurar para a framework ir buscar em cada módulo o respectivo layout, como posso configurar?

 

Valeu[]

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isto já é outro problema. Como já te falei algumas vezes, mantenha uma dúvida só por tópico.

 

Sobre a questão de multi language já resolveu ou ainda não tentou fazer?

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

O padrão é modulo/controller/action. Você pode trabalhar com configs separadas, mas não precisa. É só toda vez que você colocar uma URL do admin você definir como rota default.

 

Carlos Eduardo

 

Oi,

 

como é que eu posso definir como rota default se estiver acedendo ao admin? :joia:

 

[]

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma rota default a partir da URL acessada definindo os valores iniciais do sistema. Um exemplo que já utilizei abaixo.

 

 

protected function _initRoutes()
{
$this->bootstrap('FrontController');
$this->_frontController = $this->getResource('FrontController');
$router = $this->_frontController->getRouter();


$router->addRoute('router_controller_action',
new Zend_Controller_Router_Route(
':lang/:module/:controller/:action',
array( 'lang'=>'br','module'=>'default','controller'=>'index','action'=>'index')
)
);
$router->addRoute('router_controller',
new Zend_Controller_Router_Route(
':lang/:module/:controller/',
array('lang'=>'br','module'=>'default', 'controller'=>'index', 'action'=>'index' )
)
);

$router->addRoute('router_module',
new Zend_Controller_Router_Route(
':lang/:module/',
array('lang'=>'br','module'=>'default', 'controller'=>'index', 'action'=>'index' )
)
);

$router->addRoute('router_lang',
new Zend_Controller_Router_Route(
':lang/',
array('lang'=>'br','module'=>'default', 'controller'=>'index', 'action'=>'index' )
)

);
} 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.