首页 > 解决方案 > 每个用户的 laravel 本地化

问题描述

如何更改每个用户的语言?例如,有些人不会改变语言。有些人会改变语言。

中间件:

use Closure;
use Auth;

class Localization
  {

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

标签: laravellocalization

解决方案


将每个用户的语言环境保存在数据库中。这样,您可以将应用程序的默认语言环境覆盖为中间件中用户的首选语言环境。

public function handle($request, Closure $next)
{
 if($user = Auth::user()) {
   App::setLocale($user->locale);   
  }
 return $next($request);
}

如果您的应用程序不需要用户进行身份验证,您可以在用户更改语言时为每个用户保存会话中的区域设置。


推荐阅读