1

我想在我的路线中添加本地化信息。

目前我的路线定义是:

    Route::controller('browse');
    Route::controller('search');
    Route::controller('support');
    Route::controller('filter');

我想将 URL 从 更改/url/browse/url/en/browse等。

如果 URL 中缺少语言,则应用程序应使用默认语言重定向到相同的路由。这意味着访问旧的/url/browse将重定向到/url/default/browse.

我试图用过滤器制作或找到一些简单的解决方案,但没有成功。感谢帮助!

4

1 回答 1

2

尝试在配置中使用默认应用程序语言和支持的语言数组。

如果您将一种语言置于受支持的语言中,则以该段开头的任何路由都将设置当前语言,并将其视为根 URL。

与您的要求的一个区别是默认语言将被接受,而不是重定向,而不是 url 中的语言。

编辑:可以帮助您进行重定向的过滤器。

Route::filter('pattern: *', array('name' => 'langredirect', function()
{
    $uri = Request::server('request_uri');
    $segments = explode('/', $uri);
    if ( ! array_get(Config::get('application.languages'), $segments[1]) )
    {
        return Redirect::to(URL::base() . '/' . Config::get('application.language') . $uri);
    }
}));
于 2012-12-07T13:13:09.513 回答