cakephp:多语言路由

时间:2013-12-03 08:40:10

标签: cakephp routes multilingual

我有这样一个链接:

<?=$this->Html->link(__('Kontakt'), array('controller' => 'contacts', 'action' => 'show', 'language' => $this->Session->read('Config.language')));?>

我的路线如下:

Router::connect('/kontakt', array('controller' => 'contacts', 'action' => 'show', 'language' => 'deu'));

这样我就可以在浏览器中找到这样的链接:

domain.com/kontakt (german is my base language)

现在我也想要其他语言,因此我使用url传输语言标志以获取此信息:

domain.com/eng/contact (all languages except german need this language shortcut)

我有这条路线

Router::connect('/:language/kontakt', array('controller' => 'contacts', 'action' => 'show'),

阵列(     'language'=&gt; 'ENG |温泉| FRE | RUS' ));

这会创建我喜欢的网址:

/spa/kontakt or /eng/kontakt or /fre/kontakt

我现在想知道,如何将翻译后的单词设置为路径,而每个翻译没有一行?有没有办法让它变得有些动态?

谢谢!

1 个答案:

答案 0 :(得分:1)

使用翻译方法,就像在任何其他地方一样:

Router::connect('/' . __d('routes', 'kontakt'), array('controller' => 'contacts', 'action' => 'show', 'language' => 'deu'));

问题在于你没有动态设置语言会导致翻译工作但是“kontakt”会变成/ deu /.

您必须动态地将语言设置为路线,而不是像您一样静态,或者您仍然需要手动将每种语言添加到路线。如果您愿意,我会有条件地检查哪种语言是活动的,并根据语言加载单独的路径文件。

相关问题