Spring Boot 2.X 国际化
Posted --- 锅老官扎起哦!
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring Boot 2.X 国际化相关的知识,希望对你有一定的参考价值。
国际化文件的编写
7月前
7月前
页面非连接配置国际化只需要:
spring.messages.basename=i18n.login
1: 1.5X版本配置的方式 今天发现已久不行了
链接配置
编写类 实现LocaleResover
public class LocaleSetting implements LocaleResolver { @Override public Locale resolveLocale(HttpServletRequest request) { /** * l=(‘en_US) 取得连接字符串 */ String lstr = request.getParameter("l"); Locale locale = Locale.getDefault(); if(!StringUtils.isEmpty(lstr)){ String[] split = lstr.split("_"); locale = new Locale(split[0],split[1]); } return locale; } @Override public void setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale) { } }
一个Spring Boot 只需要存在一个继承 WebMvcConfigurationSupport,所以都在这个类 配置
# 在下面这里配置 public class AppConfig extends WebMvcConfigurationSupport /** * 配置国际化 */ @Bean public LocaleResolver initLocale(){ return new LocaleSetting(); }
2: 2.x版本的配置方式
/** * 拦截器映射 */ @Override protected void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(localeChangeInterceptor()); super.addInterceptors(registry); } /** * 配置国际化 */ @Bean public LocaleResolver localeResolver() { SessionLocaleResolver slr = new SessionLocaleResolver(); // 默认使用的语言 slr.setDefaultLocale(Locale.SIMPLIFIED_CHINESE); return slr; } @Bean public LocaleChangeInterceptor localeChangeInterceptor() { LocaleChangeInterceptor lci = new LocaleChangeInterceptor(); // 参数名 用于区别使用语言类型 /** * <a class="btn btn-sm" th:href="@{index.html(l=‘en-US‘)}">中文</a> * <a class="btn btn-sm" th:href="@{index.html(l=‘zh-CN‘)}">English</a> */ lci.setParamName("l"); return lci; }
以上是关于Spring Boot 2.X 国际化的主要内容,如果未能解决你的问题,请参考以下文章