1、创建翻译文件
翻译文件所在目录为resources/lang,在此创建 zh_CN/lang.php文件(在此创建的为中文)
return [
'username'=>'用户名',
'password'=>'密码',
'rememberme'=>'记住密码',
'login'=>'登录',
'badpassword' => '用户名或密码错误.',
]
2、创建中间件
创建中间件 php artisan make:middleware lang
public function handle($request, Closure $next)
{
//判断是否存在session
if ($request->session()->has('lang')) {
$lang=Session::get('lang');
if(App::getLocale() != $lang) {
App::setLocale($lang);
}
}else{
//判断系统语言
if(strrpos(strtolower($_SERVER['HTTP_ACCEPT_LANGUAGE']), 'zh-cn') !== false) {
if(App::getLocale() != 'cn'){
App::setLocale('cn');
}
}
else
{
if(App::getLocale() != 'en') {
App::setLocale('en');
}
}
}
return $next($request);
}
3、在代码中实现 使用 trans()方法 实现本地化显示 {{trans(‘auth.username’)}}
<div class="form-group">
<label class="col-lg-4 control-label">{{trans('auth.username')}}</label>
<div class="col-lg-6">
<input type="text" class="form-control" name="name" value="{{old('name')}}" autofocus/>
</div>
</div>
4、页面实时切换 中英文
通过ajax传入后台修改,并存入Session中
/**
* 语言切换
*
* 修改 locale 配置
*/
public function lang($type='cn'){
if($type !== 'cn' && $type !=='en'){
$type='cn';
}
config(['app.locale' => $type]);
if(config('app.locale') == $type){
session(['lang' => $type]);
$array=array('status'=>'1');
}else{
$array=array('status'=>'0');
}
return json_encode($array);
}