【问题标题】:cakephp choosing language by urlcakephp 通过 url 选择语言
【发布时间】:2010-12-29 00:35:50
【问题描述】:

这里描述了我想要实现的目标http://nuts-and-bolts-of-cakephp.com/2008/11/28/cakephp-url-based-language-switching-for-i18n-and-l10n-internationalization-and-localization/ 但我无法让它工作。

路由器配置如下所示:

Router::connect('/registered/:language/:controller/:action/*',
 array('prefix' => 'registered', 'registered' => true, 'layout'=> 'registered'),
 array('language' => '[a-z]{3}'));

但是当我尝试转到www.example.com/registered/cze/packages 时,我得到了:

Error: CzeController could not be found.

我使用的是 cake 1.3,而不是作者的 1.2,这可能是问题所在,但我需要进行哪些更改才能使其正常工作?

编辑:

$this->Session->write('Config.language','cze');

此代码有效,当在控制器中使用时会更改网站的语言,但我需要根据 URL 让它工作

【问题讨论】:

    标签: php cakephp localization cakephp-1.3


    【解决方案1】:

    URL www.example.com/registered/cze/packages 与路由 /registered/:language/:controller/:action/* 不匹配,因为 :action 段为空。因此,URL 会落入标准路由,其中​​registered 被识别为前缀,cze 被识别为控制器。

    您还需要创建一个“更短的”/registered/:language/:controller 路由来捕获“缩写”的 URL。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-03
      • 1970-01-01
      • 2020-04-26
      • 1970-01-01
      • 2011-07-24
      • 2021-01-13
      • 2013-03-27
      • 2010-12-19
      相关资源
      最近更新 更多