手动翻译Laravel后出现未知代码,如何解决该问题?
Laravel翻译后出现未解析键的解决办法
排查步骤及解决方案
检查翻译文件的位置与命名
Laravel的自定义翻译文件需放在resources/lang/{你的语言代码}目录下,比如中文环境对应resources/lang/zh-CN。像验证规则这类核心模块的翻译,必须创建和核心文件同名的翻译文件(例如验证规则对应validation.php),核心翻译文件的位置在vendor/laravel/framework/src/Illuminate/Validation/res/lang/{语言代码}/validation.php,你需要在自定义目录下创建同名文件来覆盖或补充翻译内容。确认应用语言环境设置正确
先检查当前应用使用的语言环境:dd(app()->getLocale());如果不是你配置的目标语言,修改
.env文件中的APP_LOCALE值(比如APP_LOCALE=zh-CN),或者在代码中动态设置:app()->setLocale('zh-CN');核对翻译键的拼写与层级
你看到的未解析代码(比如validation.required)是翻译键,以验证规则为例,要在validation.php文件中确保存在对应的键值对:return [ 'required' => '此字段必须填写', // 其他需要自定义的翻译项... ];注意翻译键的层级结构要和核心文件保持一致,避免嵌套错误。
清除Laravel缓存
Laravel会缓存翻译配置,修改翻译文件后未清除缓存会导致旧内容(或未解析的键)持续显示。执行以下命令清理缓存:php artisan cache:clear php artisan config:clear php artisan view:clear正确扩展核心翻译
不要直接覆盖整个核心翻译数组,建议用合并的方式保留默认翻译,仅修改需要自定义的项:return array_merge( require __DIR__.'/../../vendor/laravel/framework/src/Illuminate/Validation/res/lang/zh-CN/validation.php', [ 'required' => '自定义的必填提示文本', ] );
内容的提问来源于stack exchange,提问作者Yusein Kolev
相关产品推荐
相关产品推荐

