我有这样一个链接:
<?=$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
我现在想知道,如何将翻译后的单词设置为路径,而每个翻译没有一行?有没有办法让它变得有些动态?
谢谢!
答案 0 :(得分:1)
使用翻译方法,就像在任何其他地方一样:
Router::connect('/' . __d('routes', 'kontakt'), array('controller' => 'contacts', 'action' => 'show', 'language' => 'deu'));
问题在于你没有动态设置语言会导致翻译工作但是“kontakt”会变成/ deu /.
您必须动态地将语言设置为路线,而不是像您一样静态,或者您仍然需要手动将每种语言添加到路线。如果您愿意,我会有条件地检查哪种语言是活动的,并根据语言加载单独的路径文件。