【发布时间】:2016-05-10 17:37:27
【问题描述】:
有没有办法转换路线? 例如:
domain.com/catalog/products // english
domain.com/catalogo/productos // portuguese
两个不同的路由,但是调用同一个 Plugin/Controller/Action/
我尝试这样创建:
Router::plugin('Catalog', ['path' => __d('catalog', /catalog']), function ($routes ){
$routes->connect(__d('catalog','/inventory'),
['controller' => 'inventory', 'action' => 'index']
);
}
但是,I18n::locale() 每次都返回默认的“en_US”,即使登录我网站的用户是“pt_BR”。
在我的控制器上,同样的功能:I18n::locale() 返回正确。
好的,现在让我们想象一下,使用__d()“自动”执行此操作是不可能的,我必须用每种语言编写每条路线(至少目前只有 2 条)。
那么,如何根据用户的语言创建链接? 例如:
echo $this->Html->link(
__d('catalog','inventory'),
['plugin'=>'catalog', 'controller' => 'inventory', 'action' => 'index']
);
【问题讨论】:
标签: cakephp routing internationalization cakephp-3.0