目录
- i18n(国际化)是什么?
- 如何实现
i18n(国际化)是什么?
各个国家都有各个国家的语言,如果网站需要让全世界的人使用,那就需要进行国际化功能开发
国际化我知道的一共有两种,其中一种是不同国家不同网站,也就是说页面风格都不一样。另外一种是网站都是一样的,只是里面的文字不同罢了。第一种没啥好说了,毕竟都是两个网站了,我们今天来说的是第二种
第二种国际化程度有所不同,我认为最好的是页面上看到的东西都是该语言的,比如静态页面+弹窗,我认为可以有两种实现思路,其中一种是完全由后端控制,前端只需要接收后端的返回值进行展示即可。另外一种是前端控制前端的静态页面展示,弹窗文字由后端进行控制。我认为最好的控制方式是由后端统一控制,即使在新增语言也不会改变很多前端代码,只需要添加一个不同语言的配置文件即可
我们以IDEA官网为例来进一步说明,先来看中文的IDEA官网:
在右上角选择语言为English,然后就可以看到IDEA英文官网了,这就是实现了国际化,效果如下:
对比上面两种语言,其实IDEA页面风格没有发生变化,只是将上面显示的文字进行了更改
如何实现
针对每一门语言,我们可以搞一个配置文件,配置文件中写着key和value,里面放置着静态页面上需要展示的内容以及消息弹窗的内容,也就是说展示给用户的所有信息都在这个配置文件中,我们只需要去配置文件中取出来就可以了,听起来很像是一个常量类一样哈
然后每一个配置文件中的key都是相同的,只是value不同,下面以繁体中文、简体中文、英文举例说明如下:
繁体中文配置文件:
简体中文配置文件:
英文配置文件:
那需要做的事情其实就是从这些配置文件中取出结果进行展示了,对于用户的不同选择,那就给用户返回不同的配置文件结果就可以了,具体写法大家可以参考xxl-job的com.xxl.job.admin.core.util.I18nUtil
类