Laravel5.5 动态切换多语言的操作方式
网络编程 2021-07-04 23:05www.168986.cn编程入门
今天长沙网络推广就为大家分享一篇Laravel5.5 动态切换多语言的操作方式,具有很好的参考价值,希望对大家有所帮助。一起跟随长沙网络推广过来看看吧
第一步: 新建所有的语言包文件 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',
第三步:处理多语言切换的控制器以及方法
<?php namespace App\Http\Controllers\Home; use App\Http\Controllers\Controller; use Illuminate\Http\Request; use Illuminate\Support\Facades\App; use Session; class LangController extends Controller{ / 切换语言包 @param Request $request / public function language(Request $request){ if($request->ajax()) { //Ajax请求访问 $lang = $request->all(); $lang = $lang['lang']; App::setLocale($lang); //配置默认语言 $request->session()->put('language',$lang); //存到session return App::getLocale(); }else{ if($request->session()->has('language')){ $res = $request->session()->get('language'); //获取session return $res; } } } }
第四步:blade模板
<meta name="csrf-token" content="{{ csrf_token() }}"> <select name="lang" id="lang"> <option value="zh" @if(Session::get('language') == 'zh') selected @endif>中文</option> <option value="cht" @if(Session::get('language') == 'cht') selected @endif>繁体</option> <option value="en" @if(Session::get('language') == 'en') selected @endif>English</option> </select>
js部分
<script> $("#lang").change(function(){ $.ajaxSetup({headers: {'X-CSRF-TOKEN': $('meta[name="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 内容如下
<?php namespace App\Http\Middleware; use Closure; use Illuminate\Support\Facades\App; use Illuminate\Support\Facades\Config; use Illuminate\Support\Facades\Session; class Language { / @param $request @param Closure $next @return mixed / public function handle($request, Closure $next) { if (Session::has('language') AND in_array(Session::get('language'), Config::get('app.locales'))) { App::setLocale(Session::get('language')); } else { // This is optional as Laravel will automatically set the fallback language if there is none specified App::setLocale(Config::get('app.locale')); } return $next($request); } }
配置app/http/middleware/kernel.php 添加Language
基本上就是这样了,试试看,希望可以对你有帮助。告辞!
以上这篇Laravel5.5 动态切换多语言的操作方式就是长沙网络推广分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持狼蚁SEO。
上一篇:Laravel 实现添加多语言提示信息
下一篇:解决php扩展安装不生效问题
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程