欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

应用国际化(1)

程序员文章站 2022-07-13 09:10:13
...

最近在做数字资产交易所的项目,项目已经趋于稳定,下一步是提供国际化支持。接下来我来讲讲国际化需要考虑哪些问题?国际化如何落地?文章仅代表个人观点,欢迎留言拍砖。

 

应用国际化需要考虑的问题:

1、前后端分离,方便国际化;

2、国际化语言如何切换?

3、数据库层面的国际化支持;

4、提示语的国际化支持;

 

一、前后端分离

        前后端分离的好处这里就不多讲了。前后端分离后,可以通过改变目录结构(如/zh 代表切换到中文环境,/en代表切换到英文环境等)来进行国际化语言的切换,这个完全可以通过前端来做,后端不用做调整;

 

二、国际化语言切换

        国际化语言切换需要通知到后端,好让后端返回该语言对应的响应报文。前后端开发人员在第一次会议讨论时,定下通过在url中加入语言标识(如language)来进行处理,每个接口都需要添加语言标识的参数。这个改动不是一般的大。

        第一版我直接在后台加了一个Interceptor,通过拦截url中的语言标识参数来获取当前语言环境,并将该语言标识保存在ThreadLocal中。

        后来我参考了亚马逊国际站的做法:将语言标识放在cookie。前端每次在切换语言时,url中带上语言标识参数,后端添加语言切换Filter,每次切换语言时,将该语言标识存储在cookie中。

 

三、数据库层面的国际化支持

        因为交易所本身的特性,数字资产本身不含有语言环境的特性(比如名称、描述等等),所以业务表不需要做国际化的处理,但是有些地方,比如栏目、文章、系统参数、字典、短信模板等是需要做国际化处理的。

        这里简单分成两种:全部数据国际化支持(如栏目、文章、短信模板)和部分数据国际化支持(如系统参数、字典等);

        对于需要全部数据国际化支持的表,添加一个语言标识列,查询时带上这个语言标识参数即可。

        对于部分数据需要国际化支持的表,如果表中有标识(或者编码)列时,在标识列添加语言标识后缀(如果没有标识列,建议添加一列);

 

四、提示语的国际化支持

        在后端支持国际化语言切换后,提示语的国际化就简单多了,直接通过i18n实现。

 

本篇介绍到这里,下一篇介绍后端实现。