2017-02-24 84 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)沒有多少意義,因爲您正在中間件上執行此操作。