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;
|
}
|
}
|