2016-06-17 49 views

回答

0

這在Laravel很簡單。首先,你需要在你的路由文件(routes.php文件)添加語言前綴:

$languagesRegExp = implode('|', array_keys(Config::get('app.languages'))); 
Route::pattern('language', $languagesRegExp); 

這將是我們的語言的前綴 - 這將只允許在我們的應用程序配置文件中指定的語言[]項目(配置/ app.php):

'languages' => [ 
    'ru' => ['prefix' => 'ru', 'title' => 'По-русски', 'locale' => 'ru_RU.utf8', 'google_code' => 'ru'], 
    'en' => ['prefix' => 'en', 'title' => 'English', 'locale' => 'en_US.utf8', 'google_code' => 'en'] 
], 

然後,將有翻譯版本的路線將是這樣的:

Route::group(['middleware' => 'language'], function() { 
    Route::get('/{language}', '[email protected]'); 
    Route::get('/{language}/about', '[email protected]'); 
} 

現在我們需要一箇中間件,因爲我們要改變基於應用的語言環境p refix參數。該中間件有一個單一的方法:

public function handle($request, Closure $next) 
{ 
    $urlSegments = explode('/', $request->path()); 
    View::share('language', $urlSegments[0]); // All views will have $language variable now 
    App::setLocale($urlSegments[0]); // Laravel locale is set to $language now 
    Cookie::queue(Cookie::make('siteLanguage', $urlSegments[0], 10800 * 7)); // We can also set a cookie, so that language is remembered 

    return $next($request); 
} 

就是這麼多!

+0

謝謝它的工作,但現在我怎樣才能將它們添加到視圖爲鏈接 –

+0

通過配置只是分析::得到(「app.languages」)生成備選的鏈路。顯示一個鏈接時,該陣列關鍵不等於當前$語言 –

+0

所以這是我的代碼視圖,但在導航欄的鏈接並不chaaange –

0

丹尼斯Mysenko的答案是驚人的工作,並在視圖中添加動態網址和這裏的語言切換器是代碼

<div class="language_switcher"> 
        <ul> 
         <li><a href="{{ url('/en') }}">en</a></li> 
         <li><a href="{{ url('/ar') }}">ar</a></li> 
        </ul> 

       </div> 
       <div class="navbar-header"> 
        <button class="navbar-toggle" type="button" data-toggle="collapse" data-target="#navbar-main"> 
         <span class="icon-bar"></span> 
         <span class="icon-bar"></span> 
         <span class="icon-bar"></span> 
        </button> 
       </div> 

       <center> 


        <div class="navbar-collapse collapse" id="navbar-main">         

         <div class="clearfix"></div> 

         <div class="clearfix"></div> 


         <ul class="nav navbar-nav navbar-right"> 
          <li><a href="{{ url('/' ,$language) }}">HOME</a></li> 
          <li><a href="{{ url('/ABOUT-US' , $language) }}">ABOUT US</a></li> 
          <li><a href="{{ url('/HOW-IT-WORKS' ,$language) }}">HOW IT WORKS</a></li> 
          <li><a href="{{ url('/CONTACT-US' ,$language) }}">CONTACT US</a></li>       
         </ul> 



        </div> 
       </center>