首页 > 其他分享 >Spring Boot中实现国际化

Spring Boot中实现国际化

时间:2024-11-24 14:35:00浏览次数:9  
标签:国际化 messages Spring Boot public message messageSource properties 语言

在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

相关文章

  • Springboot儿童手表管理系29x7n(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表用户,产品分类,智能手表开题报告内容一、研究背景随着科技的飞速发展和智能设备的普及,儿童手表作为一种智能穿戴设备,逐渐受到家长的关注和青睐。儿童手表不仅能......
  • Springboot儿童认知图文辅助系统6yhkv(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表学生,教师,课程信息,学生选课,通知公告开题报告内容一、研究背景与意义儿童的认知发展是他们成长过程中至关重要的一部分。传统的教学方式往往单一且缺乏互动,难......
  • SpringBoot 2.x 整合 Redis
    整合1)添加依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><!--如果没有使用下面给出的工具类,那么就不需要引入--><dependency><groupId>c......
  • Spring Bean 的生命周期
    原文:如何记忆SpringBean的生命周期参考:一文读懂SpringBean的生命周期建议先了解bean生命周期涉及到的几个常见接口的基本使用:EnvironmentAware、ApplicationContextAware、InitializingBean、BeanPostProcessor1.引言去网上搜“SpringBean的生命周期?”,大多以下......
  • SpringCloudAlibaba系列---【maven如何实现多继承?】
    1.问题当我们使用SpringCloudAlibaba创建微服务的时候,我们的父pom工程的parent肯定是springboot-parent,但是,我们又要使用spring-cloud-alibaba-dependencies作为版本管理,parent肯定只能有一个,这时候该怎么办呢?2.解决方案使用dependencyManagement的pom和import即可,例如下面的sp......
  • 基于SpringBoot+Vue的智能物流管理系统-无偿分享 (附源码+LW+调试)
    目录1.项目技术2.功能菜单3.部分功能截图4.研究背景5.研究目的6.可行性分析6.1技术可行性6.2经济可行性6.3操作可行性7.系统设计7.1概述7.2系统流程和逻辑7.3系统结构8.数据库设计8.1数据库ER图(1)员工信息实体属性图(2)店主信息实体属性图(3)部门......
  • 基于SpringBoot+Vue的中小型医院网站(附源码+LW+调试)
    目录1.研究背景2.角色功能分析(1)角色:医师(2)角色:管理员(3)角色:用户3.系统结构设计 4.数据库设计 4.1缴费清单信息实体E-R图4.2预约挂号信息实体E-R图4.3医师信息实体E-R图4.4管理员信息实体E-R图4.5用户信息实体E-R图4.6门诊信息实体E-R图5.......
  • 【StringRedisTemplate】SpringBoot项目集成Redis
    目录SpringDataRedis介绍SpringDataRedis的作用SpringDataRedis提供的工具类环境准备引入依赖配置文件StringRedisTemplate的使用StringRedisTemplate的基础APIStringRedisTemplate的常用操作APIRedis的应用场景SpringDataRedis介绍SpringData是Spring......
  • 645. 大学生HTML5毕业设计 ―【基于html汽车商城网站页面设计与实现】Bootsrap框架响
    目录一、网页概述二、网页文件三、网页效果四、代码展示1.html2.CSS3.JS五、总结1.简洁实用2.使用方便3.整体性好4.形象突出5.交互式强六、更多推荐欢迎光临仙女的网页世界!这里有各行各业的Web前端网页制作的案例,样式齐全新颖,并持续更新!感谢CSDN,提供了这么......
  • spring框架必知点整理(点到为止非深入篇)
    1.springboot的启动流程springboot的启动流程分两阶段:构造函数,实例化SpringApplication阶段实例化后,调用SpringApplication的run方法阶段 启动流程@SpringBootApplicationpublicclassMySpringBootWebApplication{publicstaticvoidmain(String[]args)......