Laravel 相當(dāng)新,我正在嘗試添加一個(gè)功能,允許用戶通過單擊 header.blade.php 文件中的按鈕在兩種語言之間切換。到目前為止,我已經(jīng)得到它,因此在相應(yīng)的 lang 目錄中有一個(gè)帶有測(cè)試字符串的 test.php 文件,并且<p>{{__('test.test')}}</p>在手動(dòng)設(shè)置時(shí)設(shè)法顯示正確的語言。目前我不確定這是否真的在調(diào)用更新語言的路由,或者我更新它的邏輯是否錯(cuò)誤,因?yàn)槲覜]有收到錯(cuò)誤并且我正在使用 barryvdh/laravel-debugbar 進(jìn)行調(diào)試。我的按鈕邏輯:<button href="{{ url('language', config('app.locale') == 'en' ? 'fr' : 'en') }}">{{ config('app.locale') }}</button>在路線/web.php 中:Route::get('/language', 'LanguageController@show');Route::post('/language/{lang}', 'LanguageController@update');LanguageController.php,通過 php artisan make:controller --api 創(chuàng)建<?phpnamespace App\Http\Controllers;use Illuminate\Http\Request;class LanguageController extends Controller{ /** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { return App::getLocale(); } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { //Tried the following config(['app.locale' => $id]); App::setlocale($id); }}問題:這是在運(yùn)行時(shí)更新語言的正確方法嗎?如何判斷我的 api 調(diào)用是否正在進(jìn)行?如何在模板 .vue 文件中實(shí)現(xiàn)這一點(diǎn)?為語言制作控制器是多余的嗎?如果更改語言環(huán)境,我的按鈕的內(nèi)部 HTML 會(huì)更改嗎?在運(yùn)行時(shí)影響配置文件是不好的做法嗎?--Edit-- 我還應(yīng)該提到,我為此制作控制器的唯一原因是因?yàn)槲易?web.php 中的路由調(diào)用使用了一個(gè)函數(shù),但是,他們說它們正在運(yùn)行 Closurephp artisan route:list并且通過研究我發(fā)現(xiàn)我不能'不知道這是否正確
1 回答

蝴蝶不菲
TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超4個(gè)贊
你在正確的道路上,但缺少一些東西。
您不能使用配置在運(yùn)行時(shí)編輯語言。
將本地語言保存在用戶會(huì)話中并創(chuàng)建一個(gè)新的中間件以在每個(gè)請(qǐng)求上設(shè)置會(huì)話中保存的語言。
我發(fā)現(xiàn)這篇文章可以幫助你,本地化-laravel
- 1 回答
- 0 關(guān)注
- 168 瀏覽
添加回答
舉報(bào)
0/150
提交
取消