这是我参与11月更文挑战的第2天,活动详情查看:2021最后一次更文挑战
前言
本节介绍RuoYi-Vue
的ruoyi-admin
模块中的系统登录模块SysLoginController
部分的代码,这个接口中都是和登录相关的逻辑,登录这里才是一个系统最为精髓的地方,普通的增删改查也可以,使用oauth2,使用cas,各种各样的登录代码体现了不同的设计思路和技术功底,但是跳不过的是如何返回提示信息给调用方,如果只有一种语言,肯定无法帮助我们实现服务多种语言的用户的想法。所以本节我们介绍Ruoyi中的文本国际化的代码。
internationalization(i18n)
我们讨论文本国际化时不可避免就要说到i18n,可能很多人都不了解为什么要叫i18n,其来源是英文单词 internationalization
的首末字符i和n,18为中间的字符数,主要是为了拼写简单,所以我们简写为i18n。
前端实现i18n
前端实现i18n根据你使用的框架可以使用vue i18n
,也可以使用jquery-i18n-properties
后端实现i18n
Ruoyi中为了实现文本国际化,直接使用了Spring 中自带的MessageSource
和LocaleContextHolder
来帮助简化国际化。在Common层中有MessageUtils
这个帮助类可以简化我们的国际化之路。
1 | java复制代码import org.springframework.context.MessageSource; |
在我们的application.yml中我们需要进行属性的配置
1 | java复制代码# Spring配置 |
将需要使用的语言文件放入resources中的i18n/messages这里就可以了
当我们需要使用的时候
1 | java复制代码@RestController |
对应的提示语需要在两个语言文件中都进行配置
1 | yml复制代码默认 |
当我们调用的时候在header中添加上Accept-Language=en时,可以看到返回的提示语已经是英文了。
本文转载自: 掘金