91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用Laravel5.5怎么動態切換多語言

發布時間:2021-06-07 17:32:08 來源:億速云 閱讀:274 作者:Leah 欄目:開發技術

使用Laravel5.5怎么動態切換多語言?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

第一步: 新建所有的語言包文件 resources/lang

使用Laravel5.5怎么動態切換多語言

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怎么動態切換多語言

看完上述內容,你們掌握使用Laravel5.5怎么動態切換多語言的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

新乡县| 新晃| 高碑店市| 和平县| 特克斯县| 梁河县| 麻城市| 邛崃市| 东安县| 通州市| 江西省| 沙田区| 荣昌县| 邛崃市| 滦南县| 萨嘎县| 嫩江县| 合阳县| 盐城市| 遵义县| 巴林右旗| 方城县| 吴桥县| 南安市| 彭阳县| 东乌珠穆沁旗| 永平县| 昌图县| 淮滨县| 石首市| 常宁市| 高安市| 会理县| 贺兰县| 华池县| 长阳| 龙泉市| 鄂尔多斯市| 桦南县| 大同市| 井研县|