系统国际化设计方案
系统国际化设计方案
在经济全球化的驱动下,系统的国际化成为了系统各项能力形态中至关重要的一种形态。下面简单就国际化的业务以及实现提供几种思路供参考,其中部分已经在产品中进行了验证。
一、国际化设计要点之业务需求
1、首先描述业务场景:
1.1、用户通过当前的语言环境自动的选择界面展示的语种;
1.2、管理人员在录入相应的基础数据(包括物料、字典等信息)时,可以选择对应的语种进行录入,但是界面展示还是自动的语种;
1.3、系统提示信息同样需要符合当前语种;
1.4、导出的表单等模板内容也需要做相应的多语言版本。
2、针对基础数据,需要在录入界面选择多语种;针对业务流程,只需要正常显示当前语种即可。
3、基础数据分为两种: 一种为页面显示的标签数据;一种为业务相关的基础数据;
业务数据也分为两种:一种为不变的业务数据,主要为用户录入的信息,正常显示;一种为可变的业务数据,主要为与语言变化相关的日期货币等数据;
4、编码过程中的注释暂时不用考虑,但是日志、异常、提示信息需要考虑国际化。
5、通用的国际化设计需要考虑的点:
多语言:界面多语言、数据多语言
数据格式:国家、地区、时间、地址、货币
多币种:公司本位币、集团本位币、全球统一币种
多时区:UTC、多时区协同应用、多时区业务处理
多会计制度:多账簿机制、支持中国、GAAP多会计制度
多支持本地化:分层设计机制:客户级、伙伴级、行业级、本地化级、领域级
6、目前针对多语言的分析,基于文字的多语言主要体现在系统界面、数据库、输出等
系统界面:多语言*切换、或者固化配置(按角色等);
数据库:多种语言、字符集;
输出:制作标准的模板,对于头部需要进行多语言化,具体内容不用调整;
其他:后台管理配置的动态数据、服务端渲染的静态的文字、js渲染的静态文字、静态的图片。
7、制定明确的角色功能清单,示例如下:
二、国际化设计方案
1、采用资源文件的方式
在*.properties文件中设置语言字典
在代码片段中通过语种信息获取资源。
2、当采用的资源文件较大时,采用缓存的形式
通过命名空间以及key值,确定唯一的value;
定义FileUtil文件,遍历所有的资源文件,分类定义,分别存放于不同的map对象中。
点评: 方法1、2 的优点在于处理简单,但是缺点很明显,如果涉及的多语言的长度不一致,会导致页面样式混乱。
3、针对不同的语种对不同的页面编制多套;从浏览器、系统设置等优先级进行识别,在controller层进行跳转时对所有的页面添加语言标识并跳转。
4、按照微服务的架构,可以采用统一配置的方式,对资源文件进行统一配置管理,服务可以调用后直接渲染前端。
5、前端的静态内容可以分两类方式实现: 一种采用资源文件的方式,一种采用数据字典表存储的方式。
6、后台涉及的业务数据的国际化,需要采用多表进行保存??
点评:建议采用单表保存所有的国际化字典数据,然后通过ID以及语言标识来进行检索。
个人网站:文凡小筑(http://www.wenfans.com)同步发布,敬请关注。