码迷,mamicode.com
首页 > 编程语言 > 详细

Spring Boot系列(4)——实现国际化

时间:2020-01-27 09:22:39      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:支持   源文件   流程   新建   直接   模板引擎   自定义   message   coding   

〇、什么是国际化

  国际化(internationalization,简称i18n),对不同的语言环境提供一个不同的资源文件,可以笼统地理解为语言切换。

  本文以中英文切换为例。

 

一、添加国际化配置文件

  1.在类路径下新建国际化配置文件,当IDEA检测到我们需要做国际化处理时,会自动切换到国际化视图:

  2.注意:国际化配置文件得用.properties文件,文件名格式为 [基名]_[语言代码]_[国家代码].properties。配置文件的中文可能会出现乱码,注意设置IDEA的编码。

  在File->Settings...File Encodings中设置:

  技术图片

 

 

  3.其中,login.properties是默认显示,login_en_US是英文显示,login_zh_CN是中文显示,我们需编写每一个需要国际化显示的内容。

  4.SpringBoot项目国际化配置文件的基名默认是“message”,而图中我们的基名是i18n下的login,这就得在全局配置文件中设置这一基名:

    application.properties:spring.message.basename=i18n.login

  技术图片

 

 

二、在页面中标记

  使用thymeleaf模板引擎,则直接用 #{国际化配置} 便可。

  运行起来后,程序会根据浏览器设置的语言、地区,自动显示相应的配置。(谷歌浏览器可在 设置->高级-语言 中设置)

  技术图片

 

   技术图片

 

 三、国际化如何起作用?

  1.Spring Boot中的国际化支持

    技术图片

 

   2.语言与地区的设置

    该组件让整个国际化配置生效,并且由容器管理该组件的生命周期

    技术图片

    技术图片

 

 四、根据请求显示语言

  Spring Boot已经默认配置了国际化解析器组件LocaleResolver,当然我们也可以重新配置该组件,并加入到容器,以达到根据http请求切换国际化配置文件;

  1.作用流程:

    国际化解析器组件拦截每个请求->检查有无语言切换参数->若有,则使用Locale设置语言与地区。

  2.自定义国际化解析器:

    技术图片

 

  3.将解析器组件加入Spring Boot容器中

     技术图片

 

   4.请求URL

  在页面中加入以下标签,向后台提供国际化参数

1 <a class="btn btn-sm" th:href="@{/index(l=‘zh_CN‘)}">中文</a>
2 <a class="btn btn-sm" th:href="@{/index(l=‘en_US‘)}">English</a>

实际URL:
http://localhost:8080/index?l=zh_CN
http://localhost:8080/index?l=en_US

  

 技术图片技术图片

 

Spring Boot系列(4)——实现国际化

标签:支持   源文件   流程   新建   直接   模板引擎   自定义   message   coding   

原文地址:https://www.cnblogs.com/Drajun/p/12231754.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!