SpringBoot 整合 i18n 国际化——一套代码支持多语言
国际化i18n让同一套代码支持多语言。这篇讲配置、使用和切换原理。一、资源文件# messages.properties默认 user.welcomeWelcome, {0}! order.successOrder created successfully page.titleShopping Mall # messages_zh_CN.properties中文 user.welcome欢迎, {0} order.success订单创建成功 page.title秒杀商城 # messages_ja_JP.properties日语 user.welcomeようこそ, {0} order.success注文が成功しました二、配置ConfigurationpublicclassI18nConfigimplementsWebMvcConfigurer{BeanpublicMessageSourcemessageSource(){ResourceBundleMessageSourcesourcenewResourceBundleMessageSource();source.setBasename(i18n/messages);source.setDefaultEncoding(UTF-8);source.setCacheSeconds(3600);returnsource;}BeanpublicLocaleResolverlocaleResolver(){SessionLocaleResolverresolvernewSessionLocaleResolver();resolver.setDefaultLocale(Locale.CHINA);returnresolver;}OverridepublicvoidaddInterceptors(InterceptorRegistryregistry){LocaleChangeInterceptorinterceptornewLocaleChangeInterceptor();interceptor.setParamName(lang);registry.addInterceptor(interceptor);}}三、使用RestControllerRequestMapping(/api)publicclassI18nController{AutowiredprivateMessageSourcemessageSource;GetMapping(/greet)publicResultVOStringgreet(Localelocale){StringmsgmessageSource.getMessage(user.welcome,newObject[]{张三},locale);returnResultVO.success(msg);}}前端切换语言GET /api/greet?langen_US GET /api/greet?langzh_CN 觉得有用的话点赞 关注【张老师技术栈】吧每周更新 Java/Python/MySQL 实战干货不让你白来。