。我正在尝试使用kohana v3建立一个多语言网站,遵循本教程:http://kerkness.ca/wiki/doku.php?id=example_of_a_multi-language_website
路由到website/controller/action
内的控制器或操作似乎可以正常工作,因为网址已正确重定向到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'));
非常感谢任何帮助!干杯
答案 0 :(得分:1)
您是否在配置文件中设置了默认语言?
请尝试以下路线:
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')
中可用。