2017-02-24 44 views
0

对于搜索引擎优化的目的,我希望在网址中包含我的Laravel项目页面的语言环境,例如http://localhost/enhttp://localhost/nl/aboutLaravel的多语言网站5.4

为了达到这个目的,我找到了一些教程和软件包,但我并不完全满意他们。最流行的建议是mcamara的laravel-汉化包,但创建的URL需要一个很长的函数调用。其他的包或者是老年人Laravel版本或提供了很多功能我不需要,这只会弄乱我的代码和数据库。

Marwelln's tutorial看起来很完美:它以我想要的方式修改URL,使用默认的URL助手(如action(),url()和route()),并且不会创建不必要的数据库表。但是,本教程似乎适用于Laravel 5.0,与Laravel 5.4不兼容。任何人都可以帮助我以最基本的方式在最新的Laravel版本中实现这样的URL修改吗?

+0

我在寻找相同的,如果你有项目,请分享。 –

回答

0

尝试以下操作:

在你RouteServiceProvider.php在地图()方法的beginnig加上这些行:

$locale = $request->segment(1); 
    if($locale) { 
     $this->app->setLocale($locale); 
     $this->prefix = $locale; 
    } 

而且mapWebRoutes()方法应该是这样的:

protected function mapWebRoutes() 
{ 
    $parameters = [ 
     'middleware' => 'web', 
     'namespace' => $this->namespace, 
    ]; 
    if ($this->prefix) { 
     $parameters['prefix'] = $this->prefix; 
    } 

    Route::group($parameters, function ($router) { 
     require base_path('routes/web.php'); 
    }); 
} 

然后按照您提供的示例链接中的其余说明操作。我想这应该是全部。

注意:行$ this-> app-> setLocale($ locale)没有多少意义,因为您正在中间件上执行此操作。