若需在前端项目中实现国际化功能,可参照 RuoYi
提供的前端国际化文档。该文档详细介绍了如何配置与管理不同语言的界面文本和内容。
自 2.7.0
版本起,RuoYi-Vue-Plus
开始支持后端的国际化配置。通过该功能,可以根据客户端请求的语言设置,在后端动态返回不同语言的响应信息。
Validator
校验框架的国际化支持自 3.4.0
版本开始,RuoYi-Vue-Plus
增加了对 Validator
框架的国际化支持。通过该功能,校验错误信息可以根据请求的语言设置返回对应的本地化信息。
TestI18nController
实现国际化在 RuoYi-Vue-Plus
的 demo
模块中,TestI18nController
提供了国际化功能的示例。要实现国际化效果,需在 HTTP 请求的 Header
中添加 content-language
参数。此参数的值应与配置的国际化文件后缀一致,如 zh_CN
、en_US
等。
RuoYi 提供了从代码到国际化文本的映射功能,具体配置和使用请参考以下示例图片。
在 Controller
中进行参数校验时,可以利用 Validator
框架的国际化支持。要实现此功能,需要在类上添加 @Validated
注解,并在参数校验注解中使用 {code}
的形式来引用国际化消息。
示例代码如下:
/**
* 国际化校验示例
*
*/
@Validated
@RestController
@RequestMapping("/demo/i18n")
public class TestI18nController {
/**
* 使用 Validator 进行国际化校验
* 省略参数时,可以查看不同语言的异常返回信息。
*
* 测试使用 not.null 校验
*/
@GetMapping("/test1")
public R<Void> test1(@NotBlank(message = "{not.null}") String str) {
return R.msg(str);
}
}
如果需要对 Bean
对象的属性进行国际化校验,同样可以使用 Validator
框架。在校验 Bean
对象的接口方法上添加 @Validated
注解,并在 Bean
的属性校验注解中使用 {code}
形式来指定国际化消息。
示例代码如下:
/**
* Bean 校验国际化示例
*
*/
@Validated
@RestController
@RequestMapping("/demo/i18n")
public class TestI18nController {
/**
* Bean 校验的国际化实现
* 省略属性值时,可以查看不同语言的异常返回信息。
*
* 测试使用 not.null 校验
*/
@GetMapping("/test2")
public R<TestI18nBo> test2(@Validated TestI18nBo bo) {
return R.ok(bo);
}
@Data
public static class TestI18nBo {
@NotBlank(message = "{not.null}")
private String name;
@NotNull(message = "{not.null}")
@Range(min = 0, max = 100, message = "{length.not.valid}")
private Integer age;
}
}
通过以上步骤,您可以在 RuoYi-Vue-Plus
中实现全面的国际化支持,无论是在前端界面还是后端逻辑中,均可根据用户的语言设置返回对应的本地化信息。
powered by kaifamiao