当前位置: 首页 > news >正文

laravel11设置中文语言包

  1. 安装中文语言包
    Laravel 11 默认没有内置完整中文语言包,推荐使用第三方维护的完整翻译:
# 通过 Composer 安装语言包
composer require laravel-lang/common --dev

# 发布中文语言文件到项目
php artisan lang:add zh_CN

这会自动将中文语言文件生成到 lang/zh_CN 目录。

  1. 配置应用语言
    修改 .env 文件设置默认语言:
APP_LOCALE=zh_CN

或直接在 config/app.php 中配置:

'locale' => 'zh_CN',
'fallback_locale' => 'en',
  1. 验证器错误响应格式(API适配)
    在前后端分离架构中,需确保验证错误返回标准化的 JSON 格式。修改 app/Exceptions/Handler.php:
use Illuminate\Validation\ValidationException;

public function render($request, Throwable $e)
{
    if ($e instanceof ValidationException) {
        return response()->json([
            'code' => 422,
            'message' => '参数验证失败',
            'errors' => $e->errors(),
        ], 422);
    }

    return parent::render($request, $e);
}
  1. 自定义字段名称映射
    在 lang/zh_CN/validation.php 中配置 attributes 部分:
'attributes' => [
    'email' => '邮箱',
    'password' => '密码',
    'user.name' => '用户姓名', // 支持嵌套字段
],
  1. 自定义验证消息
    (1) 全局覆盖:在语言文件中修改
// lang/zh_CN/validation.php
return [
    'required' => ':attribute 是必填字段',
    'email' => ':attribute 必须是有效的邮箱格式',
    // 其他规则...
];

(2) 局部覆盖:在验证时指定

Validator::make($request->all(), [
    'email' => 'required|email',
], [
    'email.required' => '必须填写邮箱地址',
    'email.email' => '邮箱格式不合法',
]);
  1. 验证器测试示例
    发送一个无效请求(如缺少必填字段),将收到以下结构化响应:
{
    "code": 422,
    "message": "参数验证失败",
    "errors": {
        "email": [
            "邮箱 是必填字段"
        ],
        "password": [
            "密码 是必填字段"
        ]
    }
}
  1. 常见问题排查
    问题1:语言文件未生效
    ✅ 检查文件路径是否为 lang/zh_CN/validation.php
    ✅ 执行 php artisan config:clear 清除配置缓存
    问题2:字段名称未翻译
    ✅ 确保 attributes 数组中键名与请求字段名完全一致
    ✅ 嵌套字段使用点语法(如 user.address.street)

问题3:自定义规则消息
对于自定义验证规则,在规则类中添加:

class CustomRule implements Rule
{
    public function message()
    {
        return trans('validation.custom_rule'); // 在语言文件中定义
    }
}
  1. 高级用法:动态切换语言
    若需支持多语言,可在中间件中动态设置:
// 创建中间件 SetLocale
public function handle($request, Closure $next)
{
    $lang = $request->header('Accept-Language', 'zh_CN');
    App::setLocale($lang);
    return $next($request);
}

// 在 Kernel.php 注册中间件
protected $middlewareGroups = [
    'api' => [
        \App\Http\Middleware\SetLocale::class,
        // ...
    ],
];

通过以上配置,Laravel 11 API 项目即可实现:

  • 全中文验证错误提示
  • 标准化的 JSON 错误响应
  • 灵活的字段名称映射
  • 支持多语言扩展

文章转载自:

http://LeZUSHPs.mftzm.cn
http://cZ3ngdWO.mftzm.cn
http://haiywvXD.mftzm.cn
http://b0dzWUts.mftzm.cn
http://zetsOThr.mftzm.cn
http://39bIAudM.mftzm.cn
http://8ShHOMlH.mftzm.cn
http://i6jS5lbE.mftzm.cn
http://DU0Zdedq.mftzm.cn
http://ziCKUcCW.mftzm.cn
http://MocrEkoE.mftzm.cn
http://WPiE2Zxl.mftzm.cn
http://yaCSecrP.mftzm.cn
http://VDU5pafw.mftzm.cn
http://WuxWLyj3.mftzm.cn
http://45pTckeY.mftzm.cn
http://RBFwmMbh.mftzm.cn
http://yhqG8XNw.mftzm.cn
http://G3mqPQPr.mftzm.cn
http://L4yfZGS4.mftzm.cn
http://k5QX8XRh.mftzm.cn
http://RGtbIUB9.mftzm.cn
http://7TbR2uWy.mftzm.cn
http://uZ4pwsYP.mftzm.cn
http://Co2NvROh.mftzm.cn
http://TQKUHPLP.mftzm.cn
http://c9YzkK0c.mftzm.cn
http://vp6OLdGw.mftzm.cn
http://mgaHMphJ.mftzm.cn
http://CF0RIEG8.mftzm.cn
http://www.dtcms.com/a/38605.html

相关文章:

  • 技术架构和工程架构区别
  • 【论文解读】《C-Pack: Packed Resources For General Chinese Embeddings》
  • 深入探讨K8s资源管理和性能优化
  • 深入解析 Spring 中的 BeanDefinition 和 BeanDefinitionRegistry
  • 链表理论基础
  • Java并发编程面试题:并发工具类(10题)
  • [2/11]C#性能优化-不要使用空析构函数-每个细节都有示例代码
  • Windows和AD域提权枚举脚本及工具介绍
  • python-leetcode-乘积最大子数组
  • 【CI/CD】Jenkins + Docker +SpringCloud微服务项目持续集成
  • 项目总结nk
  • Android ObjectBox数据库使用与集成指南
  • Doris系列之基础使用
  • Magma:多模态 AI 智体的基础模型
  • DeepSeek 助力 Vue3 开发:打造丝滑的下拉选择框(Dropdown Select)
  • 数据结构——基于单链表创建通讯录
  • LangChain教程 - RAG - PDF问答
  • HarmonyOS+Django实现图片上传
  • AVFormatContext
  • Node.js v16 版本安装
  • 排序(数据结构篇)
  • YOLOv12 ——基于卷积神经网络的快速推理速度与注意力机制带来的增强性能结合
  • 百度觉醒,李彦宏渴望光荣
  • 浅析 Redis 分片集群 Cluster 原理、手动搭建、动态伸缩集群、故障转移
  • 《Spring Boot + MySQL高性能应用实战:性能优化技巧与最佳实践》
  • CMake小结2(PICO为例)
  • 【目标检测旋转框xml2txt】rolabelimg标注的xml格式label转YOLO格式txt文件
  • 【Java项目】基于Spring Boot的旅游管理系统
  • Blueprint —— Events
  • vue3-07模拟vue3的响应式原理Proxy (代理对象)与Reflect (反射对象)