1、编写国际化文件
(1)、在 resource 文件夹下创建名为 i18n 的文件夹
(2)、在 i18n 文件夹下创建国际化文件,创建好文件后,应当是下面这样的视图
(3)、国际化文件内容
login.properties:
login.btn=登录
login.password=密码
login.remember=记住我
login.tip=请登录~
login.username=用户名
login_en_US.properties:
login.btn=Sign in
login.password=Password
login.remember=remember-me
login.tip=Please sign in
login.username=UserName
login_zh_CN.properties:
login.btn=登录
login.password=密码
login.remember=记住我
login.tip=请登录
login.username=用户名
如果在 properties 文件中不能显示中文,设置如下:
2、SpringBoot 中配置国际化组件
(1)、SpringBoot 自动配置的国际化组件
@Configuration
@ConditionalOnMissingBean(
value = {MessageSource.class},
search = SearchStrategy.CURRENT
)
@AutoConfigureOrder(-2147483648)
@Conditional({MessageSourceAutoConfiguration.ResourceBundleCondition.class})
@EnableConfigurationProperties
public class MessageSourceAutoConfiguration {
private static final Resource[] NO_RESOURCES = new Resource[0];
public MessageSourceAutoConfiguration() {
}
//默认的国际化配置文件的基名为 messages,所以我们可以将我们的国际化配置文件命名为 messages.properties
@Bean
@ConfigurationProperties(
prefix = "spring.messages"
)
public MessageSourceProperties messageSourceProperties() {
return new MessageSourceProperties();
}
@Bean
public MessageSource messageSource() {
MessageSourceProperties properties = this.messageSourceProperties();
ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
if (StringUtils.hasText(properties.getBasename())) {
//设置国际化资源文件的基础名(去掉语言国家代码的)
messageSource.setBasenames(StringUtils.commaDelimitedListToStringArray(StringUtils.trimAllWh