繁体   English   中英

本地化laravel

[英]Localization laravel

我一直在尝试更新网站的语言。

调节器

public function getUpdateLanguage(Request $request) {
        $request_data = $request->all();
         \Session::put('locale', $request_data['language']);
        return redirect()->back();
}

中间件:

 public function handle($request, Closure $next)
 { 
    if ( \Session::has('locale')) {
        \App::setLocale(\Session::get('locale'));
    }
    return $next($request);
 }

但是if ( \\Session::has('locale'))的真正块永远不会执行,并且语言始终是'en'并且永远不会更新。 如果我尝试的话效果很好

 public function handle($request, Closure $next)
 { 

     \App::setLocale('arabic');

    return $next($request);
 }

核心:

protected $middleware = [
        \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
        \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
        \App\Http\Middleware\TrimStrings::class,
        \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
        \App\Http\Middleware\TrustProxies::class,
        \App\Http\Middleware\Localization::class,
    ];

本地化是我的中间件。 语言更新控制器方法重定向到主目录:

public function getIndex() {
        return view('frontend.home');
}

有人可以指导我在哪里清除会话值,或者如果我做错了,还有更好的方法吗?

\\Illuminate\\Session\\Middleware\\StartSession::class到您的kernel.php middleware数组中:

protected $middleware = [
    \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
    \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
    \Illuminate\Session\Middleware\StartSession::class,
    \App\Http\Middleware\TrimStrings::class,
    \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
    \App\Http\Middleware\TrustProxies::class,
    \App\Http\Middleware\Localization::class,
];

你可以做这样的事情

中间件:

public function handle($request, Closure $next)
 { 
    App::setLocale(
        $request->session()->has('locale') ? 
        $request->session()->get('locale') : 
        App::getLocale()
    );

    return $next($request);
 }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM