博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Laravel——语言包
阅读量:6858 次
发布时间:2019-06-26

本文共 2212 字,大约阅读时间需要 7 分钟。

如果其他语言没有定义,会默认的查找en下的定义

创建语言包

resources/lang下创建需要的语言文件夹,如jp,默认是en。然后创建语言包文件

trans.php

return [   //User   'user_name_required' => 'User name cannot be empty',   'user_name_between' => 'User name length 5-10 characters',   'user_name_unique' => 'User names must be unique',   'user_password_required' => 'Password cannot be empty',   'user_password_between' => 'Password length 5-10 characters',   'user_role_required' => 'Role cannot be empty',   //Role   'role_name_required' => 'Role name cannot be empty',   'role_name_unique' => 'Role names must be unique',   // DbException   2000 => 'Database operation exception',   2001 => 'Database insert failure',   2002 => 'Database update failure',   2003 => 'Database delete failure',];复制代码

创建中间件

通过前端头的X-Language,来判断是什么语言,并设置语言

SwitchLanguage.php

class SwitchLanguage{   public function handle($request, Closure $next)   {       $lang = $_SERVER['HTTP_X_LANGUAGE'] ?? 'jp';       app()->setLocale($lang);       return $next($request);   }}复制代码

注册路由中间件

Kernel.php

'lang' => \App\Http\Middleware\SwitchLanguage::class,复制代码

路由使用中间件

Route::middleware( 'lang')->group(function () {});复制代码

使用语言包

自定义异常

自定义异常可以通过异常码进行判断

BaseException.php

public function __construct($code = 0, $message = '', $httpCode = 0, Throwable $previous = null){   $this->default_code = $code == 0 ? $this->default_code : $code;   $this->default_message = empty($message) ? trans("trans.$this->default_code") : $message;   $this->default_httpCode = $httpCode == 0 ? $this->default_httpCode : $httpCode;   parent::__construct($message, $code, $previous);}复制代码

表单验证异常

Handler.php

if ($exception instanceof ValidationException) {   $message = $exception->validator->errors()->first();   return response()->json([       'code' => 1000,       'message' => trans("trans.$message"),   ], 422);}复制代码

UserRequest.php

public function messages(){   return [       'name.required' => 'user_name_required',       'name.between' => 'user_name_between',       'name.unique' => 'user_name_unique',       'password.required' => 'user_password_required',       'password.between' => 'user_password_between',       'role.required' => 'user_role_required',   ];}复制代码

转载于:https://juejin.im/post/5cadbcd85188251aef620d31

你可能感兴趣的文章
开源监控软件的配置:cacti,nagios
查看>>
Python多线程之threading模块
查看>>
第 6 章 单区域 OSPF
查看>>
Android图片开发内幕--基础篇
查看>>
LVS DR模式
查看>>
ZooKeeper 的安装 以及配置说明
查看>>
iOS10推送通知(本地&远程)/Swift
查看>>
标准交互及UED、埋点及锚应用、外部调用原则。请教一下哪位大佬知道这三个的应用?求助...
查看>>
浅入深谈:一道Python面试题,让我明白了殊途同归,却开始怀疑自己
查看>>
内存时序对应的4个参数你们知道吗?ICMAX一文让你看懂
查看>>
我的U盘故事2
查看>>
《窃听风暴》影评
查看>>
linux下磁盘分区(初级篇)
查看>>
mysql大小写规则校验
查看>>
mysql互主自动化配置脚本
查看>>
nginx的upstream模块
查看>>
Plycom CX话机版本升级
查看>>
RHCS+Conga+GFS+cLVM共享存储的高可用性web集群
查看>>
Vmware vsphere 5.5之网络配置
查看>>
设置SVN,Git忽略MAC的.DS_Store文件的方法
查看>>