美文网首页SpringBoot学习
079-Spring Boot 国际化支持

079-Spring Boot 国际化支持

作者: 郭艺宾 | 来源:发表于2019-07-08 14:58 被阅读1次

    很多项目中都需要国际化的支持,这里来使用springboot实现国际化,关于国际化i18n的各个国家语言的编码,大家可以自行查询,这里不列出,只配置英文en_US和中文zh_CN。

    国际化的支持不需要加入额外的依赖,我们只加入一个web组件即可:

    启动类不用改,增加一个配置类:

    配置中配置了两个地方,一个是使用SessionLocaleResolver,并且配置了默认的国际化语言为英语,另一个配置了国际化功能的参数,通过这个参数可以选择使用哪个国家的语言,比如需要使用中文,可以在url后面加上?lang=zh_CN。

    下面来看一下配置文件,需要配置两个参数:

    basename表示的意思是,国际化内容的路径,也就是i18n文件夹下面以num开头的所有文件,i18n文件夹需要放在resources下面。basename可以支持多个参数,用逗号隔开。

    fallback-to-system-locale=false表示找不到对应语言的时候,比如写了lang=123,那么就是用默认文件num.properties中的配置内容。

    根据上面的配置,我们要在resources下面新建一个i18n文件夹,并在文件夹下面新建三个文件,分别是 num.properties, num_en_US.properties, num_zh_CN.properties,在  num.properties中,我们输入内容  i18n.num=123,在  num_en_US.properties中,我们输入内容  i18n.num=456,在  num_zh_CN.properties中,我们输入内容  i18n.num=789,

    所有的配置都完成了,国际化可以直接使用了,我们来写一个接口测试一下:

    MessageSource可以直接获取国际化对应的内容,接口本身的写法没有任何影响,我们来测试一下,首先看一下中文:

    没有问题,再来看一下英文:

    也没有问题,再来看一下一种不存在的语言:

    这时候走的就是国际化默认的配置内容!我们再来试试不传入lang参数的结果:

    可以看到返回的是英文的结果,也就是我们在配置类中配置的默认的国际化语言。

    注意,在浏览器中测试时,受cookie的影响,不输入语言参数的结果并不一定是设置的结果,如果想要达到这种效果,需要每次清除cookie。

    代码地址: https://gitee.com/blueses/spring-boot-demo

    相关文章

      网友评论

        本文标题:079-Spring Boot 国际化支持

        本文链接:https://www.haomeiwen.com/subject/fmpohctx.html