"这里是测试", "tes " />
第一步: 新建所有的语言包文件 resources/lang
messages.php
就是返回一个数组 return [] 格式
中文的:
return [ "test" => "这里是测试", "test1" => "继续测试", ......];
英文的:
return [ "test" => "this is a test...", "test1" => "test again...", ......];
各种语言中的元素键名是对应
第二步:配置文件 app/config/app.php
'locale' => 'zh','locales' => ['zh','en','cht'], //包含的语言种类'fallback_locale' => 'cht',
第三步:处理多语言切换的控制器以及方法
<?phpnamespace app\http\controllers\home;u app\http\controllers\controller;u illuminate\http\request;u illuminate\support\facades\app;u ssion;class langcontroller extends controller{ /** * 切换语言包 * @param request $request */ public function language(request $request){ if($request->ajax()) { //ajax请求访问 $lang = $request->all(); $lang = $lang['lang']; app::tlocale($lang); //配置默认语言 $request->sdnf魔法师转什么职业好ession()->put('language',$lang); //存到ssion return app::getlocale(); }el{ if($request->ssion()->has('language')){ $res = $request->ssion()->get('language'); //获取ssion return $res; } } }}
第四步:blade模板
<meta name="csrf-token" content="{{ csrf_token() }}"><lect name="lang" id="lang"> <option value="zh" @if(ssion::get('language') == 'zh') lected @endif>中文</option> <option value="cht" @if(ssion::get('language') == 'cht') lected @endif>繁体</option> <option value="en" @if(ssion::get('language') == 'en') lected @endif>english</option></lect>x分之一;
js部分
<script> $("#lang").change(function(){ $.ajaxtup({headers: {'x-csrf-token': $('meta[n古人传递信息的故事ame="csrf-token"]').attr('content')}}); $.post( "{{url('lang')}}", { lang:$("#lang").val() }, function(d){ if(d){ console.log(d); location.reload(); //重新刷新页面 } } ); });</script>
第五步: 中间件的设置-middleware(每一次请求,每个中间件都会执行) app/http/middleware下添加language.php 内容如下
<?phpnamespace app\http\middleware; u closure;u illuminate\support\facades\app;u illuminate\support\facades\config;u illuminate\support\facades\ssion; class language{ /** * @param $request * @param closure $nex母亲节的诗歌t * @return mixed */ public function handle($request, closure $next) { if (ssion::has('language') and in_array(ssion::get('language'), config::get('app.locales'))) { app::tlocale(ssion::get('language')); } el { // this i美德少年自我介绍s optional as laravel will automatically t the fallback language if there is none specified app::tlocale(config::get('app.locale')); } return $next($request); } }
配置app/http/middleware/kernel.php 添加language
基本上就是这样了,试试看,希望可以对你有帮助。告辞!
以上这篇laravel5.5 动态切换多语言的操作方式就是www.887551.com分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持www.887551.com。
本文发布于:2023-04-08 08:09:15,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/66376e1e5cb2bd22103300a5257110cd.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:Laravel5.5 动态切换多语言的操作方式.doc
本文 PDF 下载地址:Laravel5.5 动态切换多语言的操作方式.pdf
留言与评论(共有 0 条评论) |