1 配置文件:
spring:
messages:
basename: i18n/messages,i18n/modules/product/product,i18n/modules/salesOrder/salesOrder,i18n/modules/system/system
encoding: UTF-8
fallback-to-system-locale: false
2 i18nConfig 配置
package com.okyun.framework.config;
@Configuration
public class I18nConfig implements WebMvcConfigurer
{
@Bean
public LocaleResolver localeResolver()
{
SessionLocaleResolver slr = new SessionLocaleResolver();
slr.setDefaultLocale(Constants.DEFAULT_LOCALE);
return slr;
}
@Bean
public LocaleChangeInterceptor localeChangeInterceptor()
{
LocaleChangeInterceptor lci = new LocaleChangeInterceptor();
lci.setParamName("lang");
return lci;
}
@Override
public void addInterceptors(InterceptorRegistry registry)
{
registry.addInterceptor(localeChangeInterceptor());
}
}
3 封装工具类
package com.okyun.common.utils;
public class MessageUtils
{
public static String message(String code, Object... args)
{
MessageSource messageSource = SpringUtils.getBean(MessageSource.class);
return messageSource.getMessage(code, args, LocaleContextHolder.getLocale());
}
}
4 配置国际化文件
/src/main/resources/
├── i18n/
│ ├── messages.properties # 默认文件
│ ├── messages_zh_CN.properties # 中文文件
│ ├── messages_en_US.properties # 英文文件
│ ├── messages_es_ES.properties # 西语文件
│ └── modules/ # 模块目录(可选)
│ ├── user.properties
│ ├── user_zh_CN.properties
│ ├── user_en_US.properties
│ ├── user_es_ES.properties
│ ├── system.properties
│ ├── system_zh_CN.properties
│ └── system_en_US.properties
│ └── system_es_ES.properties
5 项目使用
#配置语言 -zh_CN
user.token.remoteLogin=该账号异地登录,异地登陆时间:{0}!
MessageUtils.message("user.token.remoteLogin", RemoteLoginTime)
# 配置语言 -zh_CN
product.product.initStock=期初库存
# 使用配置
@Excel(name = "期初库存", i18nKey = "product.product.initStock", sort = 22
@Min(value = 0, message = "期初库存不能小于0")
private BigDecimal initStock;