doushansu9012 2018-07-13 07:40
浏览 227
已采纳

Laravel本地化不起作用

im try to make localization with laravel but my code doesn't work, some opinion or advices?

Here is code

My Language Middleware:

    public function handle($request, Closure $next)
{
    if(Session::has('locale')) {
        $locale = Session::get('locale',Config::set('app.locale'));
    } else {
        $locale = "bg";
    }

    App::setLocale($locale);

    return $next($request);
}

My Controller:

 public function changeLang(Request $request,$lang) {
    if (!empty($request)) {
        Session::put('locale',$lang);
    } else {
        Session::set('locale',$lang);
    }
    return back();
}

And my route Route::get('/{lang}','LanguageController@changeLang');

What i doing wrong?

  • 写回答

2条回答 默认 最新

  • douciping4283 2018-07-13 07:53
    关注

    Hope this code will work for you.

    Controller

       public function index($locale) 
      {
          session(['locale' => $locale]);
          App::setLocale($locale);
          return Redirect::back();
       }
    

    Language Middleware:

    public function handle($request, Closure $next)
        {
            if (Session::has('locale')) {
                App::setLocale(Session::get('locale'));
            }
            else { // This is optional as Laravel will automatically set the fallback language if there is none specified
                App::setLocale(Config::get('app.fallback_locale'));
            }
            return $next($request);
        } 
    

    Route:

    Route::get('/{lang}', 'LanguageController@index');
    

    Last add your Langauge middleware in app/Http/Kernal.php in middlewaregroup

     \App\Http\Middleware\Language::class,
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?