Spring boot国际化

在开发中涉及到国际化时,如果想通过配置多个配置文件形式,将不同语言可以再前台进行显示。那么需要用到的有LocaleResolver和LocaleChangeInterceptor。不需要一个个put,直接在前台读取就行。

 

 

springboot中大部分有默认配置所以开发起项目来非常迅速,仅对需求项做单独配置覆盖即可

spring采用的默认区域解析器是AcceptHeaderLocaleResolver,根据request header中的accept-language值来解析locale,并且是不可变的。

 

那么想要实现国际化,就要使用SessionLocaleResolver或者CookieLocaleResolver。

 

相关参考:

https://docs.stormpath.com/java/spring-boot-web/i18n.html  

http://www.iteye.com/topic/1144591

http://www.cnblogs.com/wqbill/p/5773338.html

http://blog.csdn.net/linxingliang/article/details/52350238

 

另外还需要进行定制拦截器进行拦截 :http://www.jianshu.com/p/1a54d5ae7904

 

 

@Configuration

public class WebConfiguration extends WebMvcConfigurerAdapter {

    //必须是localeChangeInterceptor,localeResolver 这两个名称

    @Bean

    public LocaleChangeInterceptor localeChangeInterceptor() {

        LocaleChangeInterceptor lci = new LocaleChangeInterceptor();

        lci.setParamName("lang");

        return lci;

    }

    

    @Bean

    public LocaleResolver localeResolver() {

        CookieLocaleResolver cl = new CookieLocaleResolver();

        cl.setCookieName(“lang”); //会像cookie中写入 key为lang的语言值, 类似lang=en这种

        return cl;

    }

    

    @Override

    public void addInterceptors(InterceptorRegistry registry) {

        registry.addInterceptor(localeChangeInterceptor());

    }

   

}

 

注册了localeChangeInterceptor 会识别url上的?lang=en这种形式的参数,并根据这个参数进行页面国际化。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值