编写一个简单的spring boot 国际化
时间: 2023-08-01 19:15:06 浏览: 102
spring boot使用thymeleaf模板的方法详解
首先,需要在 `application.properties` 文件中设置支持的语言和默认语言:
```
spring.messages.basename=messages
spring.mvc.locale=zh_CN
spring.mvc.locale-resolver=fixed
```
接着,在 `src/main/resources` 目录下创建 `messages.properties` 和 `messages_zh_CN.properties` 两个文件,分别对应默认语言和中文语言的翻译文本。
例如,`messages.properties` 中可以设置如下的键值对:
```
greeting=Hello, world!
```
而 `messages_zh_CN.properties` 中可以设置如下的键值对:
```
greeting=你好,世界!
```
然后,在 Spring Boot 应用程序中可以使用 `MessageSource` 实现国际化。
首先,需要在配置类中添加 `MessageSource`:
```java
@Configuration
public class AppConfig {
@Bean
public MessageSource messageSource() {
ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
messageSource.setBasename("classpath:messages");
messageSource.setDefaultEncoding("UTF-8");
return messageSource;
}
}
```
然后,在控制器中使用 `MessageSource` 获取翻译文本:
```java
@Controller
public class GreetingController {
private final MessageSource messageSource;
public GreetingController(MessageSource messageSource) {
this.messageSource = messageSource;
}
@GetMapping("/")
public String greeting(Model model, Locale locale) {
String greeting = messageSource.getMessage("greeting", null, locale);
model.addAttribute("greeting", greeting);
return "greeting";
}
}
```
最后,在视图模板中使用 `th:text` 显示翻译文本:
```html
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Greeting</title>
</head>
<body>
<h1 th:text="${greeting}"></h1>
</body>
</html>
```
当浏览器设置为中文时,应用程序会自动使用中文翻译文本来显示问候语。
阅读全文