springboot国际化


目录结构

实现步骤

  1. 配置i18n文件

    • login.properties
    login.btn=登录
    login.password=密码
    login.remember=记住我
    login.tip=请登录
    login.username=用户名
    
    • application.properties
    # 我们的配置文件的真实位置
    spring.messages.basename=i18n.login
    
  2. 项目中进行按钮自动切换,需要自定义一个组件LocaleResolver

    • MyLocaleResolver
    public class MyLocaleResolver implements LocaleResolver {
        // 解析请求
        @Override
        public Locale resolveLocale(HttpServletRequest request) {
            // 获取请求中的语言参数
            String language = request.getParameter("l");
            Locale locale = Locale.getDefault();//如果没有就使用默认的
            // 如果请求的连接携带了国际化的参数
            if (!StringUtils.isEmpty(language)) {
                // zh_CN
                String[] split = language.split("_");
                // 国家_地区
                locale = new Locale(split[0], split[1]);
            }
            return locale;
        }
    
        @Override
        public void setLocale(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Locale locale) {
        }
    }
    
  3. 将组件配置到spring容器@Bean

    • MyMvcConfig
    @Configuration
    public class MyMvcConfig implements WebMvcConfigurer {
        // 自定义的国际化组件就生效了!
        @Bean
        public LocaleResolver localeResolver() {
            return new MyLocaleResolver();
        }
    }
    
  4. #{}调用国际化内容

    • index.html