1、国际化资源
使用IDEA创建资源组
2、编写配置
application.yml
增加国际化目录配置
增加配置类 从请求头获取多语言关键字
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | /** * 国际化配置 * * @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、测试
编写测试类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | /** * 测试国际化 * * @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 国际化内容请搜索自学编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持自学编程网!
- 本文固定链接: https://zxbcw.cn/post/219145/
- 转载请注明:必须在正文中标注并保留原文链接
- QQ群: PHP高手阵营官方总群(344148542)
- QQ群: Yii2.0开发(304864863)