1.首先配置application.properties
spring.messages.basename=static/i18n/messages
spring.messages.encoding=utf-8
2.通過全局配置加載國際化的bean對象
import org.springframework.beans.factory.annotation.Value;
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;
import java.util.Locale;
/**
* @Author: Devin
* @Date: 2020-03-24 11:16
* @Version 1.0
*/
@Configuration
public class I18nConfig {
@Value(value = "${spring.messages.basename}")
private String basename;
/**
* 設置默認支持語言
* @return
*/
@Bean
public LocaleResolver localeResolver(){
SessionLocaleResolver sessionLocaleResolver = new SessionLocaleResolver();
//設置默認的語言
sessionLocaleResolver.setDefaultLocale(Locale.CHINA);
return sessionLocaleResolver;
}
@Bean
public WebMvcConfigurer localeInterceptor(){
return new WebMvcConfigurer() {
@Override
public void addInterceptors(InterceptorRegistry registry) {
LocaleChangeInterceptor localeChangeInterceptor = new LocaleChangeInterceptor();
//通過請求參數 ?lang=cn_ZH 方式獲取具體的語言
localeChangeInterceptor.setParamName("lang");
registry.addInterceptor(localeChangeInterceptor);
}
};
}
}
3.增加配置文件其中
************messages.properties是必須存在的無論有沒有數據
************Resource Bundle “messages”是自動創建的不需要管理
************m不同的語言通過不同的文件名結尾
4.我們可以通過MessageSource來獲取我們的國際化信息
@Autowired
private MessageSource messageSource;
messageSource.getMessage(msgKey, null, LocaleContextHolder.getLocale());