Хорошо, теперь у меня есть рабочая локализация на основе URL (/3200205/cakephp-vybor-yazyka-po-url
), но как создать ссылку, которая изменит язык? Я пробовал
<?php echo $html->link('English', array('language'=>'eng')); ?>
но все, что он делает, это добавляет language:eng
в конце URL (www.example.com/blah/blah/language:eng
вместо www.example.com/eng/blah/blah
) и не переключает язык вообще.
Теперь маршруты выглядят так:
Router::connect('/registered/:language/:controller',
array('prefix' => 'registered', 'registered' => true, 'layout'=> 'registered'),
array('language' => '[a-z]{3}'));
Router::connect('/registered/:language/:controller/:action/*',
array('prefix' => 'registered', 'registered' => true, 'layout'=> 'registered'),
array('language' => '[a-z]{3}'));
Я также переопределил метод url в app_helper:
function url($url = null, $full = false) {
if(!isset($url['language']) && isset($this->params['language'])) {
$url['language'] = $this->params['language'];
}
return parent::url($url, $full);
}
Как заставить ссылку работать так, как она должна быть?
Спасибо