php - Laravel 本地化不起作用

标签 php laravel session localization

我尝试使用 laravel 进行本地化,但我的代码不起作用,有什么意见或建议吗?

这是代码

我的语言中间件:

    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);
}

我的 Controller :

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

还有我的路线 Route::get('/{lang}','LanguageController@changeLang');

我做错了什么?

最佳答案

希望此代码对您有用。

Controller

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

语言中间件:

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::get('/{lang}', 'LanguageController@index');

最后在 middlewaregroup 的 app/Http/Kernal.php 添加你的 Langauge 中间件

 \App\Http\Middleware\Language::class,

关于php - Laravel 本地化不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51320028/

相关文章:

php - 如何循环遍历数组并将其值存储在 Laravel 中

swift - NSURLSession:无需身份验证即可 NSURLSession ( Swift )

javascript - 如何在codeigniter中提交表单后获取成功消息

php - 拉维尔 : I can't use Request object two times at the same function

laravel - 如何从 Laravel 的特定 session 中注销用户?

java - JSP 中的 session.getAttribute() 给出空值

java - SessionFactory 注入(inject)不起作用

javascript - 将文件上传到 HTML 表单并提交之间会发生什么?

php - 如何通过 PHP(而不是 CPanel)设置 cron 作业?

php - WordPress 如何使用 native mail() 函数发送电子邮件,而该函数本身不起作用?