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

如何翻译micronaut-problem-json库消息?是否支持i18n配置?

如何为micronaut-problem-json库实现消息国际化翻译

micronaut-problem-json库**支持通过Micronaut标准的国际化配置(包括src/main/resources/i18n/messages.properties及其语言变体文件)**实现多语言消息翻译,以下是具体实现步骤:

1. 创建国际化消息文件

在项目的src/main/resources/i18n目录下创建基础消息文件及对应语言的变体文件:

  • 默认英文文件:messages.properties

    # 约束验证问题的标题
    problem.constraint-violation.title=Constraint Violation
    # Size约束的默认消息
    javax.validation.constraints.Size.message=size must be between {min} and {max}
    
  • 葡萄牙语文件:messages_pt.properties

    problem.constraint-violation.title=Violação de integridade
    javax.validation.constraints.Size.message=o tamanho deve ser entre {min} e {max}
    
  • 西班牙语文件:messages_es.properties

    problem.constraint-violation.title=Infracción de restricción
    javax.validation.constraints.Size.message=el tamaño debe estar entre {min} y {max}
    

注:其他约束验证注解的消息键遵循Hibernate Validator的标准命名规则(如javax.validation.constraints.NotNull.message),可根据业务需求添加对应翻译。

2. 配置Micronaut国际化支持

在项目的application.yml(或application.properties)中开启并配置国际化规则:

micronaut:
  i18n:
    enabled: true
    default-locale: en
    locales:
      - en
      - pt
      - es

3. 验证效果

当客户端请求携带Accept-Language: pt请求头时,触发约束验证错误后,服务端会返回葡萄牙语的响应负载,与你期望的格式一致:

{
  "type": "https://zalando.github.io/problem/constraint-violation",
  "title": "Violação de integridade",
  "status": 400,
  "violations": [
    {
      "field": "create.signup.username",
      "message": "o tamanho deve ser entre 3 e 30"
    }
  ]
}

补充说明

虽然micronaut-problem-json的GitHub文档未明确提及该配置方式,但该库复用了Micronaut的MessageSource和Locale解析机制,因此完全兼容标准的国际化消息配置流程。

内容的提问来源于stack exchange,提问作者Alexandre V.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 07:25:32