为了账号安全,请及时绑定邮箱和手机立即绑定

Laravel 通过 URL/Route 更改语言

Laravel 通过 URL/Route 更改语言

PHP
富国沪深 2022-07-16 18:52:16
Laravel 相当新,我正在尝试添加一个功能,允许用户通过单击 header.blade.php 文件中的按钮在两种语言之间切换。到目前为止,我已经得到它,因此在相应的 lang 目录中有一个带有测试字符串的 test.php 文件,并且<p>{{__('test.test')}}</p>在手动设置时设法显示正确的语言。目前我不确定这是否真的在调用更新语言的路由,或者我更新它的逻辑是否错误,因为我没有收到错误并且我正在使用 barryvdh/laravel-debugbar 进行调试。我的按钮逻辑:<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 创建<?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);    }}问题:这是在运行时更新语言的正确方法吗?如何判断我的 api 调用是否正在进行?如何在模板 .vue 文件中实现这一点?为语言制作控制器是多余的吗?如果更改语言环境,我的按钮的内部 HTML 会更改吗?在运行时影响配置文件是不好的做法吗?--Edit-- 我还应该提到,我为此制作控制器的唯一原因是因为我让 web.php 中的路由调用使用了一个函数,但是,他们说它们正在运行 Closurephp artisan route:list并且通过研究我发现我不能'不知道这是否正确
查看完整描述

1 回答

?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

你在正确的道路上,但缺少一些东西。

您不能使用配置在运行时编辑语言。

将本地语言保存在用户会话中并创建一个新的中间件以在每个请求上设置会话中保存的语言。

我发现这篇文章可以帮助你,本地化-laravel


查看完整回答
反对 回复 2022-07-16
  • 1 回答
  • 0 关注
  • 139 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信