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

Laravel 9.x中如何覆写__()方法移除翻译缺失时的前缀

在Laravel 9.x中移除翻译未找到时的文件名前缀

方法:覆写__()辅助函数

Laravel的__()是trans()的别名,当翻译键不存在时会返回完整键名(含前缀)。我们可以通过自定义辅助函数覆盖默认实现,处理返回结果:

  1. 创建自定义辅助函数文件
    在项目的app文件夹下新建helpers.php,写入以下代码:
<?php

if (!function_exists('__')) {
    function __($key, $replace = [], $locale = null)
    {
        $translation = trans($key, $replace, $locale);
        
        // 若返回的是原始翻译键(未找到对应翻译),移除前缀部分
        if ($translation === $key && str_contains($key, '.')) {
            return collect(explode('.', $key))->last();
        }
        
        return $translation;
    }
}
  1. 配置自动加载
    修改项目根目录的composer.json,在autoload节点中添加files配置:
"autoload": {
    "files": [
        "app/helpers.php"
    ],
    "psr-4": {
        "App\\": "app/",
        "Database\\Factories\\": "database/factories/",
        "Database\\Seeders\\": "database/seeders/"
    }
}
  1. 更新自动加载映射
    在终端执行以下命令,让Composer加载新的辅助函数文件:
composer dump-autoload

设置完成后,当翻译键不存在时,__()会自动移除文件名前缀,返回点分隔符后的内容。比如调用__('common.As you have manager access')未找到翻译时,会返回As you have manager access而非完整键名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 23:20:29