Laravel多语言设置
   
   
    一、在~/config/app.php文件中加入应用支持的语言版本
    'locales' => ['en' => 'English', 'zh-CN' => '简体中文', 'ja' => '日本語'],
    'fallback_locale' => 'en',
   
    二、先创建个LanguageController,用来处理设置语言种类的请求
    php artisan make:controller LanguageController
   
    代码如下:
        namespace App\Http\Controllers;
    use Illuminate\Http\Request;
   
    class LanguageController extends Controller
    {
    /**
     * Show the application dashboard.
     *
     * @return \Illuminate\Http\Response
     */
   
    public function setLocale($lang){
        if (array_key_exists($lang, config('app.locales'))) {
            session(['applocale' => $lang]);
        }
        return back()->withInput();
      }
    }
     
   
    三、改路由,在routes\web.php里面加个指向LanguageController@changeLanguage的路由,
   
    Route::get('lang/{locale}', ['as'=>'lang.change', 'uses'=>'LanguageController@setLocale']);
   
   
    四、在前端页面里头放个选择语言的链接列表,如下
   
    @foreach (Config::get('app.locales') as $lang => $language)
        @if ($lang != App::getLocale())
            
  • {{$language}}

  •         @endif
        @endforeach
       
        五、做个Language的Middleware,截住请求,改当前Request的语言设定
        php artisan make:middleware Language
       
           
        namespace App\Http\Middleware;
       
        use Closure;
        use Illuminate\Support\Facades\App;
        use Illuminate\Support\Facades\Config;
        use Illuminate\Support\Facades\Session;
       
       
        class Language
        {
            /**
             * Handle an incoming request.
             *
             * @param  \Illuminate\Http\Request  $request
             * @param  \Closure  $next
             * @return mixed
             */
            public function handle($request, Closure $next)
            {
                
                return $next($request);
            }
        }
       
       
        六、把Language这个中间件在Kernel.php里头注册好
        protected $middlewareGroups = [
            'web' => [
                \App\Http\Middleware\EncryptCookies::class,
                \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
                \Illuminate\Session\Middleware\StartSession::class,
                \App\Http\Middleware\Language::class, // Alex Globel Language Settings 2017-03-17
       
                \Illuminate\View\Middleware\ShareErrorsFromSession::class,
                \App\Http\Middleware\VerifyCsrfToken::class,
                \Illuminate\Routing\Middleware\SubstituteBindings::class,
            ],
        ];