springboot国际化

1 编写国际化文件

在resources下创建i18n文件夹存放配置文件

i18n.properties

login=登录
password=密码
username=用户名

i18n_zh_CN.properties

login=登录
password=密码
username=用户名

i18n_en_US.properties

login=SIGN IN
password=password
username=username

其他国家地区语音按文件名以此类推

2 配置地区解析器

通过实现LocaleResolver接口实现resolveLocale方法自定义地区解析器,通过request或session中的参数获取地区信息返回Locale对象

public class MyLocaleResolver implements LocaleResolver {
    @Override
    public Locale resolveLocale(HttpServletRequest httpServletRequest) {
        HttpSession session = httpServletRequest.getSession();
        String language = httpServletRequest.getParameter("language");
        Locale locale = Locale.getDefault();
        if(!StringUtils.isEmpty(language)){
            String[] s = language.split("_");
            locale = new Locale(s[0], s[1]);
            session.setAttribute("language", language);
        }
        else if(!StringUtils.isEmpty(session.getAttribute("language"))){
            String language = (String) session.getAttribute("language");
            String[] s = language.split("_");
            locale = new Locale(s[0], s[1]);
        }
        return locale;
    }
}

3 在自定义的WebMvcConfig中将地区解析器添加到bean容器中

@Configuration
public class MyMvcConfig implements WebMvcConfigurer {
    @Bean
    public LocaleResolver localeResolver(){
        return new MyLocaleResolver();
    }
}

4 在application.yml中配置国际化文件的位置

spring:
  messages:
    basename: i18n.i18n

5 在thymeleaf中使用#{}获取国际化配置

<label th:text="#{username}"></label>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值