SpringBoot 国际化LocaleContextHolder的基本配置

  1. 在resources创建文件

    messages_zh_CN.properties(中文),写入

    #Unicode转码
    hello=\u4f60\u597D
    

    messages_en_US.properties(英文),写入

    hello=hello world
    

    结构如图在这里插入图片描述

  2. 创建配置类

    @Configuration
    @EnableAutoConfiguration
    @ComponentScan
    public class LocaleConfig implements WebMvcConfigurer {
    
        //Cookie
        @Bean
        public LocaleResolver localeResolver() {
            CookieLocaleResolver localeResolver = new CookieLocaleResolver();
            localeResolver.setCookieName("localeCookie");
            //设置默认区域
            localeResolver.setDefaultLocale(Locale.ENGLISH);
            //设置cookie有效期.
            localeResolver.setCookieMaxAge(3600);
            return localeResolver;
        }
    
        @Bean
        public LocaleChangeInterceptor localeChangeInterceptor() {
            LocaleChangeInterceptor lci = new LocaleChangeInterceptor();
            // 参数名
            lci.setParamName("lang");
            return lci;
        }
    
        @Override
        public void addInterceptors(InterceptorRegistry registry) {
            registry.addInterceptor(localeChangeInterceptor());
        }
    
    }
    
  3. 测试

    @RestController
    public class TestController {
    
        @Autowired
        private MessageSource messageSource;
    
        @GetMapping(path = "/test2",produces = "text/html;charset=utf-8")
        public Object test2(){
            Locale locale = LocaleContextHolder.getLocale();
            String hello = messageSource.getMessage("hello", null, locale);
            return hello;
        }
        
    }
    

    访问
    http://127.0.0.1:8080/test2?lang=zh_CN
    http://127.0.0.1:8080/test2?lang=en_US

posted @   叕叕666  阅读(1230)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示