亲宝软件园·资讯

展开

Spring Boot国际化 Spring Boot2.X国际化文件编写配置

---WeiGeH 人气:0

这篇文章主要介绍了Spring Boot2.X国际化文件编写配置,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

国际化文件的编写

messages.properties
init project
messages_en_US.properties
init project
messages_zh_CN.properties

页面非连接配置国际化只需要:

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')}" rel="external nofollow" >中文</a>
     * <a class="btn btn-sm" th:href="@{index.html(l='zh-CN')}" rel="external nofollow" >English</a>
     */
    lci.setParamName("l");
    return lci;
  }

加载全部内容

相关教程
猜你喜欢
用户评论