springboot实现语言切换

1.编写国际化配置文件
springboot实现语言切换_第1张图片
配置文件中定义与语言相关的数据
例如login_en_US.properties

#英文
login.btn=Sign In 
login.password=Password
login.Remember=Remember Me 
login.tip=Please sign in
login.username=UserName    

2.页面使用thymeleaf的#{}获取国际化内容
例如th:text="#{login.tip}"

Please sign in

3.页面传递信息
传递语言和国家信息(Locale构造方法的参数)

中文
English

4.编写LocaleResolver获取区域信息对象Locale

public class MyLocaleResolver implements LocaleResolver {
    @Override
    //login.html?l=zh_CN  zh表示中文 CN表示中国
    public Locale resolveLocale(HttpServletRequest request) {
        //l = "zh_CN"
        String l = request.getParameter("l");
        Locale locale = Locale.getDefault();
        if(!StringUtils.isEmpty(l)){
            String[] s = l.split("_");
            //Locale(language,country)
            locale = new Locale(s[0],s[1]);
        }
        return  locale;
    }

    @Override
    public void setLocale(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Locale locale) {
    }
}

5.注入MyLocalResolver替代容器中的LocaleResolver

@Configuration
public class Myconfig {
    @Bean
    public LocaleResolver localeResolver() {
        return new MyLocaleResolver();
    }
}

6.效果展示
(1)点击中文
springboot实现语言切换_第2张图片
(2)点击English
springboot实现语言切换_第3张图片

你可能感兴趣的:(javaee)