史上最佳springboot|史上最佳springboot Locale 国际化方案

目录

  • 1、国际化资源
  • 2、编写配置
  • 3、用法详解
  • 4、测试

1、国际化资源 使用IDEA创建资源组
史上最佳springboot|史上最佳springboot Locale 国际化方案
文章图片

史上最佳springboot|史上最佳springboot Locale 国际化方案
文章图片

史上最佳springboot|史上最佳springboot Locale 国际化方案
文章图片

史上最佳springboot|史上最佳springboot Locale 国际化方案
文章图片


2、编写配置 application.yml 增加国际化目录配置
史上最佳springboot|史上最佳springboot Locale 国际化方案
文章图片

增加配置类 从请求头获取多语言关键字
/** * 国际化配置 * * @author Lion Li */@Configurationpublic class I18nConfig { @Bean public LocaleResolver localeResolver() {return new I18nLocaleResolver(); } /*** 获取请求头国际化信息*/ static class I18nLocaleResolver implements LocaleResolver {@NotNull@Overridepublic 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; }@Overridepublic void setLocale(@NotNull HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Locale locale) {} }}


3、用法详解 在 Header 请求头 增加上下文语言参数 content-language
参数需与国际化配置文件后缀对应
如 zh_CN en_US 等
史上最佳springboot|史上最佳springboot Locale 国际化方案
文章图片


4、测试 【史上最佳springboot|史上最佳springboot Locale 国际化方案】编写测试类
/** * 测试国际化 * * @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|史上最佳springboot Locale 国际化方案
文章图片

史上最佳springboot|史上最佳springboot Locale 国际化方案
文章图片

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

    推荐阅读