在springboot中有MessageSourceAutoConfiguration这个自动配置类,通过搜索找到这个类

spring boot jacob英文生成语音 springboot中英文切换_spring boot


首先可以看到这个类在配置文件中通过spring.messages.xxx来对对应properties中的属性进行配置,我们点进去properties这个对象里面,也就是类MessageSourceProperties

spring boot jacob英文生成语音 springboot中英文切换_spring boot_02


在这个类中可以得出,它是基于messages这个名字来对配置文件进行识别,并且默认的编码格式为UTF-8。因此,我们只需要在application.properties也就是springboot的配置文件中将这个默认值修改成自己目录下面的默认值即可。(在这里展示我的目录)

spring boot jacob英文生成语音 springboot中英文切换_spring boot_03


spring boot jacob英文生成语音 springboot中英文切换_spring boot_04


ps:(application.yaml)写完对应的配置文件之后那么改如何实现中英文切换,搜索webmvcautoconfiguration这个类

所有的web请求都会经过这个类进行一定的操作,在这个类中有一个方法叫localeResolver

spring boot jacob英文生成语音 springboot中英文切换_spring boot_05


因为我们需要使用自己的地区解析器来达到中英文切换的一个效果,我们点进去springboot中看看springboot是如何写这个地区解析器的

spring boot jacob英文生成语音 springboot中英文切换_解析器_06


点进去之后我们发现它继承了LocaleResolver这个接口也就是说,实现了这个接口的类就会被视作地区解析器,接着往下看到resolverLocale这个方法

spring boot jacob英文生成语音 springboot中英文切换_配置文件_07


首先先获取了一个默认的Locale对象然后判断这个对象是否为空并且在请求参数中请求头的语言参数为空,那么就返回一个默认的地区处理器,如果不为空那么就是用所接收到的语言参数进行一个处理了解了这些之后我们就可以开始去实现我们想要的功能了,

首先先去我们希望国际化的页面中进行一些操作(我是用了thymeleaf)

首先先编写一个地区解析器类

spring boot jacob英文生成语音 springboot中英文切换_spring boot_08


编写完成之后要将我们的地区解析器类配置进spring的容器中让spring自动帮我们进行注册

spring boot jacob英文生成语音 springboot中英文切换_配置文件_09


ps:(只要在添加了@Configuration这个注解的类下面进行注册都会生效)最后修改我们页面信息,在这里我的页面是经过mvc之后在转发回去的,(不知道为什么直接转发给自己不行,望大佬告知)

spring boot jacob英文生成语音 springboot中英文切换_解析器_10