您的位置:首页技术文章
文章详情页

史上最佳springboot Locale 国际化方案

【字号: 日期:2023-02-18 14:34:05浏览:12作者:猪猪
目录1、国际化资源2、编写配置3、用法详解4、测试1、国际化资源

使用IDEA创建资源组

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

2、编写配置

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

史上最佳springboot Locale 国际化方案

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

/** * 国际化配置 * * @author Lion Li */@Configurationpublic class I18nConfig {@Beanpublic 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 Locale 国际化方案

4、测试

编写测试类

/** * 测试国际化 * * @author Lion Li */@RestController@RequestMapping('/demo/i18n')public class TestI18nController {@Autowiredprivate 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 Locale 国际化方案

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

标签: Spring
相关文章: