то, что я пытаюсь достичь, описано здесь 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' => '[az]{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-адресом
URL www.example.com/registered/cze/packages не соответствует маршруту /registered/:language/:controller/:action/* , так как сегмент :action пуст. Следовательно, URL-адрес попадает на стандартный маршрут, где registered признается префиксом и cze в качестве контроллера.
Вам нужно будет создать маршрут «более короткий» /registered/:language/:controller чтобы поймать «сокращенные» URL-адреса.