springboot多语言切换
时间: 2023-07-26 09:21:22 浏览: 122
在Spring Boot中进行多语言切换,可以采用国际化(i18n)的方式来实现。具体步骤如下:
1. 在src/main/resources目录下创建i18n文件夹,然后在该文件夹下创建多个properties文件,每个文件对应一种语言,例如messages_en.properties、messages_zh_CN.properties等。这些properties文件中,以键值对的形式存储了各种语言对应的文本信息。
2. 在Spring Boot的配置文件application.properties(或application.yml)中,配置Spring Boot应用默认的语言类型,例如:
```
spring.messages.basename=i18n/messages
spring.mvc.locale=zh_CN
spring.mvc.locale-resolver=fixed
```
其中,spring.messages.basename参数指定了properties文件的前缀,spring.mvc.locale参数指定了默认的语言类型,spring.mvc.locale-resolver参数指定了使用固定的语言类型。
3. 在Controller中使用MessageSource对象来获取对应语言的文本信息,例如:
```
@Controller
public class HelloController {
@Autowired
private MessageSource messageSource;
@GetMapping("/hello")
public String hello(Model model, Locale locale) {
String message = messageSource.getMessage("hello.world", null, locale);
model.addAttribute("message", message);
return "hello";
}
}
```
在上述代码中,messageSource.getMessage方法用于获取对应语言的文本信息,第一个参数是在properties文件中定义的键,第二个参数是占位符,第三个参数是Locale对象,用于指定语言类型。
4. 在HTML模板中使用Thymeleaf的国际化功能来显示文本信息,例如:
```
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Hello</title>
</head>
<body>
<p th:text="#{hello.world}"></p>
</body>
</html>
```
在上述代码中,th:text属性使用了Thymeleaf的国际化功能,#{hello.world}表示获取properties文件中的键为hello.world的文本信息。
通过上述步骤,就可以在Spring Boot中实现多语言切换了。
阅读全文