You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Laravel中不受当前区域设置影响获取指定语言文件消息

在Laravel 9中指定区域获取语言消息的方法

你可以通过以下几种方式绕过当前全局locale,直接读取指定语言文件的内容:

  • 使用__辅助函数的第三个参数
    平时用的__函数其实支持传入第三个参数指定目标locale,写法很简单:

    {{ __('page.welcome_message', [], 'fr') }}
    

    第二个参数是用于替换消息变量的数组,不需要替换就传空数组,第三个参数就是你要指定的语言标识(比如这里的fr)。

  • 使用Lang门面的get方法
    也可以直接调用Lang门面的get方法,同样指定locale参数:

    {{ \Illuminate\Support\Facades\Lang::get('page.welcome_message', [], 'fr') }}
    

    效果和上面的辅助函数完全一致,适合习惯用门面调用的场景。

  • 临时切换locale(适合批量获取场景)
    如果需要多次获取某个语言的内容,每次传参数太麻烦,可以临时切换locale,用完再恢复:

    // 先保存当前全局locale
    $currentLocale = app()->getLocale();
    // 切换到目标语言
    app()->setLocale('fr');
    // 正常获取消息,此时会读取fr语言文件
    $welcomeMsg = __('page.welcome_message');
    $otherMsg = __('page.other_message');
    // 切回原来的locale,不影响后续请求
    app()->setLocale($currentLocale);
    

    这种方法适合在控制器或者服务类里批量处理多语言内容的场景。

以上方法都不会改变当前请求的全局locale,只是单独获取指定语言的消息内容。

内容的提问来源于stack exchange,提问作者Saswat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 14:46:00