Кохана многоязычный сайт - PullRequest
2 голосов
/ 11 июня 2010

. Я пытаюсь настроить многоязычный веб-сайт с Kohana v3, следуя этому руководству: http://kerkness.ca/wiki/doku.php?id=example_of_a_multi-language_website

Маршрутизация к контроллеру или действию внутри, т. Е. website/controller/action, кажется, работает, так как URL правильно перенаправлен на website/lang/controller/action.

  • Однако это не работает для вызовов AJAX-запросов. Я должен вручную редактировать URL-адрес с соответствующим языком, чтобы успешно получить данные. Это также относится и к якорям на html-странице.

  • В дополнение к этой проблеме, параметр переполнения 'id' также не работает. Он принимает переменную lang в качестве параметра.

Я настроил свой маршрут по умолчанию, как в учебнике, т. Е .:

Route::set('default', '((<lang>)(/)(<controller>)(/<action>(/<id>)))', array('lang' => "({$langs_abr})",'id'=>'.+'))  ->defaults(array('lang' => $default_lang,'controller' => welcome', 'action' => 'index'));

Любая помощь очень ценится! Приветствия

1 Ответ

1 голос
/ 06 августа 2010

Вы установили язык по умолчанию в файле конфигурации?

Попробуйте вместо этого следующий маршрут:

Route::set('default', '(<lang>/)(<controller>(/<action>(/<id>)))', array('lang' => "({$langs_abr})",'id'=>'.+'))
    ->defaults(array(
        'lang' => $default_lang,
        'controller' => 'welcome',
        'action' => 'index'));

Если вы хотите добавить текущий язык к любой выводимой вами ссылке, вы можете попробовать прозрачно расширить класс URL или, возможно, просто класс HTML (для метода anchor ()). Текущий язык должен быть доступен в объекте запроса Request::$instance->param('lang').

...