2010-12-29 5 views
1

То, что я пытаюсь достичь, описано здесь http://nuts-and-bolts-of-cakephp.com/2008/11/28/cakephp-url-based-language-switching-for-i18n-and-l10n-internationalization-and-localization/ , но я не могу заставить его работать.cakephp Выбор языка по URL

Конфигурация маршрутизатора выглядит следующим образом:

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

butw, когда я пытаюсь идти к www.example.com/registered/cze/packages я получаю:

Error: CzeController could not be found.

Я использую торт 1.3, а не 1,2, как автор, это может быть проблемой, но что мне нужно изменить, чтобы это работало?

Edit:

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

Этот код работает и при использовании в контроллере изменяет язык сайта, но мне нужно, чтобы он работал в соответствии с URL

ответ

1

URL-адрес www.example.com/registered/cze/packages не соответствует маршрут /registered/:language/:controller/:action/*, так как сегмент :action пуст. Поэтому URL-адрес попадает на стандартный маршрут, где registered распознается как префикс и cze в качестве контроллера.

Вам нужно будет создать «более короткий» маршрут /registered/:language/:controller, а также поймать «сокращенные» URL-адреса.

+0

Большое спасибо, окончательно работает. – Elwhis

Смежные вопросы