开发喵星球

RuoYi-Vue-Plus 国际化支持方案(317)

前端国际化设置

若需在前端项目中实现国际化功能,可参照 RuoYi 提供的前端国际化文档。该文档详细介绍了如何配置与管理不同语言的界面文本和内容。

后端国际化配置

2.7.0 版本起,RuoYi-Vue-Plus 开始支持后端的国际化配置。通过该功能,可以根据客户端请求的语言设置,在后端动态返回不同语言的响应信息。

Validator 校验框架的国际化支持

3.4.0 版本开始,RuoYi-Vue-Plus 增加了对 Validator 框架的国际化支持。通过该功能,校验错误信息可以根据请求的语言设置返回对应的本地化信息。

示例:使用 TestI18nController 实现国际化

RuoYi-Vue-Plusdemo 模块中,TestI18nController 提供了国际化功能的示例。要实现国际化效果,需在 HTTP 请求的 Header 中添加 content-language 参数。此参数的值应与配置的国际化文件后缀一致,如 zh_CNen_US 等。

获取代码对应的国际化内容

RuoYi 提供了从代码到国际化文本的映射功能,具体配置和使用请参考以下示例图片。



在 Controller 参数校验中使用国际化

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 校验中使用国际化

如果需要对 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 中实现全面的国际化支持,无论是在前端界面还是后端逻辑中,均可根据用户的语言设置返回对应的本地化信息。

   
分类:Java/OOP 作者:无限繁荣, 吴蓉 发表于:2024-08-31 16:56:41 阅读量:108
<<   >>


powered by kaifamiao