本地化laravel [英] Localization laravel

查看:64
本文介绍了本地化laravel的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I have been trying to update language for the website.

控制器

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'))的true块永远不会执行,并且语言始终是"en",并且永远不会更新.如果我尝试

But the true block for if ( \Session::has('locale')) never executes and the language is always 'en' and never updates. It works fine if I try

 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,
    ];

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

Localization is my middleware. The language update controller method redirects to home:

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

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

Can someone please guide me where is the session value being cleared or if I am doing it wrong and there is a better way?

推荐答案

\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,
];

这篇关于本地化laravel的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆