2020-06-04

最近系统国际化心得,由于业务的需求,需要对所有的系统实现国际化。针对这一需求,我们首先想到的就是多语言。
国际化难道就是简单的把页面上的文字翻译一遍吗,当然不是。有很多的问题等着我们去解决,我大致的归纳了一下几点:
第一,文字的存储问题
关于文字显示的问题,
后端处理,比如消息提示,错误提示等我们用的资源文件处理。这里需要注意的是,由于资源文件平凡访问,可能可能系统的性能产生一定的影响。我们的做法是,程序在启动时,将资源文件注册单本地缓存中,提高访问效率
前端处理,前端同样也用资源文件的方式,如表格的标题,减少前后端的请求

第二,数据库存储问题
由于涉及到不同的语言,文字的长度不一致,需要对之前数据库所有字段进行分析,如字段的长度,字段的类型,都需要重新分析。对基础数据的处理方式是,在基础数据表中加上语言的字段,用来区分不同正常显示

第三,页面显示问题
由于不同语言同一个描述得长度不一样,翻译是尽量保持长度的一直,如果比较特殊的情况下,也需要针对不同的语言,进行不同页面的处理,保证样式显示正常

第四,各个业务系统之间需要兼容问题
为了解决用户不用每次登录都需要选择语言,是将语言的值保存到cooke中,同时各个系统之间又有交互,如果跳转到新系统,需要再次选择语言,那种体验将是致命的。所有在各个系统之间的跳转是带上了语言参数。如果带有语言参数,参数的语言级别大于cooke中的语言标签,将缓存的语言更新为传入的语言

第五,历史数据处理问题
由于对数据库的结构有变动,需要对所有的历史数据进行针对性的处理,如有得地方错了基础数据的键或值

第六,时间的问题
国际化由于涉及到的用户不一定在中国境内,所以涉及到时区的问题,如果别人在美国提一单,页面上显示是北京时间,那给用于的误导将是致命的。所以我们所以时间的存储都是用时间撮的方式,在页面上进行转换

第七,消息推送的问题
比如邮件推送,有时候一封邮件可能会涉及到多个收件人,如果按每个人的语言进行推送,显然没办法实现。为了提供更好地用户体验,一封邮件我们进行了多种语言消息的推送。

以上是最近在实现国际化项目中一些心得,希望对大家有所帮助

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值