史上最佳springboot Locale 国际化方案

今天给大家分享史上最佳springboot Locale 国际化方案,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧

1、国际化资源

使用IDEA创建资源组

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、编写配置

application.yml 增加国际化目录配置

在这里插入图片描述

增加配置类 从请求头获取多语言关键字

 /** * 国际化配置 * * @author Lion Li */ @Configuration public class I18nConfig { @Bean public LocaleResolver localeResolver() { return new I18nLocaleResolver(); } /** * 获取请求头国际化信息 */ static class I18nLocaleResolver implements LocaleResolver { @NotNull @Override public Locale resolveLocale(HttpServletRequest httpServletRequest) { String language = httpServletRequest.getHeader("content-language"); Locale locale = Locale.getDefault(); if (StrUtil.isNotBlank(language)) { String[] split = language.split("_"); locale = new Locale(split[0], split[1]); } return locale; } @Override public void setLocale(@NotNull HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Locale locale) { } } }

3、用法详解

在 Header 请求头 增加上下文语言参数 content-language
参数需与国际化配置文件后缀对应
如 zh_CN en_US 等

在这里插入图片描述

4、测试

编写测试类

 /** * 测试国际化 * * @author Lion Li */ @RestController @RequestMapping("/demo/i18n") public class TestI18nController { @Autowired private MessageSource messageSource; /** * 通过code获取国际化内容 * code为 messages.properties 中的 key * * 测试使用 user.register.success */ @GetMapping() public String get(String code) { return messageSource.getMessage(code, new Object[]{}, LocaleContextHolder.getLocale()); } }

测试接口

在这里插入图片描述
在这里插入图片描述

到此这篇关于springboot Locale 国际化方案的文章就介绍到这了,更多相关springboot 国际化内容请搜索html中文网以前的文章或继续浏览下面的相关文章希望大家以后多多支持html中文网!

以上就是史上最佳springboot Locale 国际化方案的详细内容,更多请关注0133技术站其它相关文章!

赞(0) 打赏
未经允许不得转载:0133技术站首页 » Java