在Spring Boot中实现国际化(i18n)是一个常见得需求,它允许应用程序根据用户的语言和地区偏好显示不同的文本
1、创建资源文件
创建包含不同语言版本的消息文件。这些文件通常放在 src/main/resources 目录下,并以 .properties 为扩展名。例如:
-
messages_en.properties(英语)
-
messages_zh_CN.properties(简体中文)
每个文件中都应包含相同的消息键,但值应对应于相同的语言。例如:
messages_en.properties:
message = welcome to our application!
messages_zh_CN.properties:
message = 欢迎来到我们的应用!
2、配置
在配置文件中设置资源文件名和字符编码
# 配置国际化资源文件名 basename,默认是messages
spring.messages.basename = messages
# 指定国际化资源文件的字符编码方式,默认是UTF-8
spring.messages.encoding = UTF-8
或
使用配置类的方式
@Configuration
public class InternationalizationConfig {
@Bean
public MessageSource messageSource() {
ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
messageSource.setBasename("classpath:messages");
messageSource.setDefaultEncoding("UTF-8");
return messageSource;
}
}
3、访问资源
@RestController
public class HelloController {
@Autowired
private MessageSource messageSource;
/**
*
* @param request 拿到浏览器的语言环境
* @return
*/
@GetMapping("hello")
public String hello(HttpServletRequest request){
/*
参数1:这是一个字符串键,对应于消息源(通常是属性文件)中的一个键值对,在我的例子中,"message"是这个键
参数2:这是一个对象数组,包含了要在消息模板中替换占位符的参数,这里为null
参数3:拿到浏览器的语言环境
*/
String message = messageSource.getMessage("message", null, request.getLocale());
return message;
}
}
4、页面展示
这里将浏览的语言设置成了英语:
展示结果:
ending !!!
标签:国际化,messages,Spring,Boot,public,message,messageSource,properties,语言 From: https://blog.csdn.net/weixin_50664430/article/details/143966504