package com.mes.tools; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.support.ReloadableResourceBundleMessageSource; import org.springframework.web.servlet.LocaleResolver; import org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver; import java.util.Locale; /** * @author huang * @since 2025/10/21 */ @Configuration public class I18nConfig { /** * 配置消息源:指定国际化文件路径和编码 */ @Bean public ReloadableResourceBundleMessageSource messageSource() { ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource(); // 配置文件i18n目录下的messages开头文件 messageSource.setBasename("file:D:/MES/i18n/messages"); messageSource.setDefaultEncoding("UTF-8"); messageSource.setCacheSeconds(20); return messageSource; } /** * 配置语言解析器:从请求头 Accept-Language 获取语言标识 * (如前端请求头携带 Accept-Language: en-US,则返回英文;携带 zh-CN 返回中文) */ @Bean public LocaleResolver localeResolver() { AcceptHeaderLocaleResolver resolver = new AcceptHeaderLocaleResolver(); // 支持的语言列表(避免非法语言标识) resolver.setSupportedLocales(java.util.Arrays.asList( Locale.SIMPLIFIED_CHINESE, // 中文 Locale.US // 英文 )); resolver.setDefaultLocale(Locale.SIMPLIFIED_CHINESE); // 默认语言 return resolver; } }