laravel - 每个用户的 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);
}
}
解决方案
将每个用户的语言环境保存在数据库中。这样,您可以将应用程序的默认语言环境覆盖为中间件中用户的首选语言环境。
public function handle($request, Closure $next)
{
if($user = Auth::user()) {
App::setLocale($user->locale);
}
return $next($request);
}
如果您的应用程序不需要用户进行身份验证,您可以在用户更改语言时为每个用户保存会话中的区域设置。
推荐阅读
- woocommerce - how to hide out of stock items based on product category
- javascript - Could you send messages from a chrome extension to a node.js server?
- jquery - 日期时间值未显示在 jQuery 数据表中
- rust - 如何使用组合器来避免详细匹配而不会出现错误“无法返回值引用函数参数”?
- html - 背景颜色
边界之外
- swift - 在 TableView 中创建部分时出现索引超出范围错误
- environment-variables - 如何在不使用 GUI 的情况下创建、更新和删除气流变量?
- javascript - 以不同模式从添加到企业站点列表的站点中打开特定页面
- xml - 比较 2 xmlNodeList 以发现差异
- php - 非 WSDL Soap 请求“错误请求”