步骤:
1.resources下创建文件夹i18n。
2.i18n文件夹下添加国际化资源文件:xx.properties、xx_en_US.properties、xx_zh_CN.properties
3.application.properties文件中配置国际化资源路径:spring.messages.basename=i18n.xx
#springboot 国际化资源配置
spring.messages.basename=i18n.guitar
4.添加配置类,设置国际化语言url标识参数:
package guitar.config;
import java.util.Locale;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.LocaleResolver;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.i18n.LocaleChangeInterceptor;
import org.springframework.web.servlet.i18n.SessionLocaleResolver;
@Configuration
public class GuitarConfig{
/**
* 默认解析器 其中locale表示默认语言
*/
@Bean
public LocaleResolver localeResolver() {
SessionLocaleResolver localeResolver = new SessionLocaleResolver();
localeResolver.setDefaultLocale(Locale.CHINA); //设置默认语言为中文
return localeResolver;
}
/**
* 默认拦截器 其中lang表示切换语言的参数名
*/
@Bean
public WebMvcConfigurer localeInterceptor() {
return new WebMvcConfigurer() {
@Override
public void addInterceptors(InterceptorRegistry registry) {
LocaleChangeInterceptor localeInterceptor = new LocaleChangeInterceptor();
localeInterceptor.setParamName("language"); //设置url标识国际化语言参数
registry.addInterceptor(localeInterceptor);
}
};
}
}
5.结合thymeleaf在html中使用:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0">
<title>springboot国际化测试</title>
</head>
<body>
<p class="p1">
<h1 th:text="#{g1}"></h1><!--g1 是key-->
</p>
</body>
</html>
结果:
默认中文
英文
注:通过controller到html中,国际化才会生效。