"这里是测试", "tes " />

"这里是测试", "tes"/>
 首页 > 作文

Laravel5.5 动态切换多语言的操作方式

更新时间:2023-04-08 08:09:16 阅读: 评论:0

第一步: 新建所有的语言包文件 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 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图