SpringBoot实现国际化

  1. 编写国际化配置文件,抽取页面需要显示的国际化消息

  2. 在配置文件中指定国际化资源文件的位置

    spring.messages.basename=i18n.login

  3. 在页面获取国际化的值,并设置请求路径

  4. 自定义 LocaleResolver

    public class MyLocalResolver implements LocaleResolver {
        @Override
        public Locale resolveLocale(HttpServletRequest httpServletRequest) {
            //获取请求中的语言参数
            String language = httpServletRequest.getParameter("l");
            System.out.println("DeBug===>"+language);
            Locale locale=Locale.getDefault(); //如果没有就使用默认的(根据主机的语言环境生成一个 Locale )。
            //如果请求的链接中携带了 国际化的参数
            if (!StringUtils.isEmpty(language)){
                //zh_CN
                String[] s = language.split("_");
                //国家,地区
                locale=new Locale(s[0],s[1]);
            }
    
            return locale;
        }
    
        @Override
        public void setLocale(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Locale locale) {
    
    
        }
    }
    

  5. 在配置文件中:向ioc容器中注入LocaleResolver 组件

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

  6. 测试

posted @ 2022-08-09 13:11  z-laoyao  阅读(211)  评论(0编辑  收藏  举报