springboot 国际化
2021-03-13 22:37
标签:简体中文 hold depend prope 语言 ati sources mvcc boot Spring Boot在默认情况下是支持国际化使用的,首先需要在src/main/resources下新建国际化资源文件,这里为了举例说明,分别创建如下三个文件: ? messages.properties(默认配置) ? messages_en_US.properties(英文配置) ? messages_zh_CN.properties(汉语配置) 进行i18n的配置,新建配置类i18nConfig 在类上加入SpringMVC注解@Controller,注入MessageSource类获取国际化资源,并且创建方法返回资源文件对应的数据,返回到前台。 在src/main/resources/template下新建index.html 访问: http://127.0.0.1:8081/templates/index 源码:https://gitee.com/caoyeoo0/xc-springboot/tree/%E5%9B%BD%E9%99%85%E5%8C%96/ springboot 国际化 标签:简体中文 hold depend prope 语言 ati sources mvcc boot 原文地址:https://www.cnblogs.com/ooo0/p/14042950.htmlmessage=欢迎使用国际化(默认)
message=Welcome to internationalization (English)
message=欢迎使用国际化(中文)
@Configuration
public class i18nConfig implements WebMvcConfigurer {
@Bean
public LocaleResolver localeResolver() {
SessionLocaleResolver slr = new SessionLocaleResolver();
// 默认使用的语言
slr.setDefaultLocale(Locale.SIMPLIFIED_CHINESE);
return slr;
}
@Bean
public LocaleChangeInterceptor localeChangeInterceptor() {
LocaleChangeInterceptor lci = new LocaleChangeInterceptor();
// 参数名 用于区别使用语言类型
lci.setParamName("lang");
return lci;
}
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(localeChangeInterceptor());
}
}
@Controller
public class HelloController {
@Autowired
private MessageSource messageSource;
@GetMapping("/templates/index")
public String index(Model model) {
Locale locale = LocaleContextHolder.getLocale();
model.addAttribute("message", messageSource.getMessage("message", null, locale));
return "index";
}
}
DOCTYPE html>
html lang="en" xmlns:th="http://www.w3.org/1999/xhtml">
head>
meta charset="UTF-8">
title>Titletitle>
head>
body>
a href="/templates/index?lang=en_US">English(US)a>
a href="/templates/index?lang=zh_CN">简体中文a>br>
p>label th:text="#{message}">label>p>
body>
html>
dependency>
groupId>org.springframework.bootgroupId>
artifactId>spring-boot-starter-thymeleafartifactId>
dependency>