使用laravel怎么實(shí)現(xiàn)語(yǔ)言包切換功能?相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。
1.創(chuàng)建中間件
在Mideleware中創(chuàng)建一個(gè)名為language.php的中間件如下:
2、中間鍵創(chuàng)建完成后需要進(jìn)行注冊(cè)中間才能使用哦接下來(lái)我們進(jìn)行注冊(cè)language中間鍵進(jìn)行注冊(cè),如果還是有不懂的小伙伴可以參考一下官網(wǎng)
/tupian/20230522/57 找到如下:
protected $middlewareGroups = [ 'web' => [ \App\Http\Middleware\EncryptCookies::class, \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, \Illuminate\Session\Middleware\StartSession::class, \Illuminate\View\Middleware\ShareErrorsFromSession::class, \App\Http\Middleware\VerifyCsrfToken::class, \App\Http\Middleware\Language::class, //語(yǔ)言包中間件注冊(cè)。 ],
3、接下來(lái)我們開(kāi)始書(shū)寫(xiě)路由了:Route::get('demos','IndexController@ins');
4、通過(guò)路由訪(fǎng)問(wèn)對(duì)應(yīng)的控制器接下來(lái)我們創(chuàng)建一個(gè)控制器IndexController
思路:前端頁(yè)面通過(guò)下拉菜單獲取當(dāng)前用戶(hù)選擇的語(yǔ)言包是英文還是簡(jiǎn)體。通過(guò)ajax請(qǐng)求到當(dāng)前控制器,把通過(guò)setLocale進(jìn)行設(shè)置,把語(yǔ)言包存入到session中進(jìn)行返回。返回的同時(shí)進(jìn)行刷新頁(yè)面
use Illuminate\Support\Facades\Session; use Illuminate\Support\Facades\App; use Illuminate\Http\Response;
public function ins(Request $request){ if($request->ajax()){ $data = $request->all(); App::setLocale($data['language']); $res = $request->session()->put('language',$data['language']); return $this->returnCode(200,'',$res); }else{
//刷新后頁(yè)面,再去獲取語(yǔ)言包 $rr = App::getLocale();
//寫(xiě)入自己的邏輯存把信息返回到頁(yè)面中區(qū) return view('welcome')->with('lan',$rr); } }
5、接下來(lái)我們開(kāi)始編寫(xiě)前端的代碼:在我們直接一welcome頁(yè)面為例子:
<div class="container"> <div class="content"> <!--<div class="title"><a href="/demo/zh_cn" rel="external nofollow" >{{ trans('welcome.message') }}</a></div>--> <select οnchange="changelanguage(this.value)"> <option value="en"> @if(App::getLocale() =='en') selected @else @endif English </option> <option value='zh_cn'@if(App::getLocale() == 'zh_cn') selected @else @endif>簡(jiǎn)體中文</option>> <div>{{trans('welcome.message')}}{{$lan}}</div> </select> </div> <script src="{{asset('public/home/js/jquery.min.js')}}"></script> <script> function changelanguage(val){ $.ajax({ type :'get', url :'demos', data:{ language :val }, dataType :'json', success:function(res){ if(res){ window.location.reload(); } } }) } </script> </body>
Laravel 是一套簡(jiǎn)潔、優(yōu)雅的PHP Web開(kāi)發(fā)框架。它可以讓你從面條一樣雜亂的代碼中解脫出來(lái);它可以幫你構(gòu)建一個(gè)完美的網(wǎng)絡(luò)APP,而且每行代碼都可以簡(jiǎn)潔、富于表達(dá)力。
看完上述內(nèi)容,你們掌握使用laravel怎么實(shí)現(xiàn)語(yǔ)言包切換功能的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
新聞名稱(chēng):使用laravel怎么實(shí)現(xiàn)語(yǔ)言包切換功能-創(chuàng)新互聯(lián)
本文鏈接:http://chinadenli.net/article46/dcpohg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、外貿(mào)建站、面包屑導(dǎo)航、外貿(mào)網(wǎng)站建設(shè)、定制開(kāi)發(fā)、企業(yè)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容