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

Laravel是否支持__()/trans()嵌套?本地化参数失效问题

Laravel 9 本地化嵌套调用问题解答

Laravel 9完全支持本地化函数(__()/trans())的嵌套调用,你遇到的失效问题并非框架不支持该用法,大概率是配置或操作细节出错,以下是排查和解决方向:

可能的问题与解决步骤

1. 语言文件键名匹配错误

确保嵌套调用的翻译键在对应语言的JSON文件中存在:

  • 比如en.json需包含:
    {
      "messages_success": ":action :name successfully",
      "created": "Created"
    }
    
  • 目标语言文件(如zh-CN.json)需同步添加对应键值:
    {
      "messages_success": ":name 已:action成功",
      "created": "创建"
    }
    

2. 当前Locale设置异常

检查应用当前使用的语言环境是否正确:

  • 临时切换Locale测试:
    // 在控制器中临时设置
    App::setLocale('zh-CN');
    
  • 若通过中间件或配置文件设置Locale,需确认逻辑未导致Locale重置为默认的en。

3. 本地化缓存未清除

Laravel会缓存语言文件内容,修改翻译文件后必须清除缓存:

php artisan cache:clear
php artisan config:clear

4. 变量占位符格式错误

主翻译条目的变量占位符需与传入的参数名严格一致,比如主条目是:action,参数键就必须是action,大小写敏感。

正确用法示例

控制器代码:

__('messages_success', ['name' => 'Fleet', 'action' => __('created')])
  • 当Locale为en时,输出:Created Fleet successfully
  • 当Locale为zh-CN时,输出:Fleet 已创建成功

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 21:10:26