软件国际化设计指南
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件国际化设计指南
1 前台应用层国际化
1.1每种语言开发一套单独的应用前台
优点:
前台界面的排版比较灵活,不同语系的排版效果可灵活变动;
缺点:
由于每种语言就是一套单独的前台系统,开发和维护的工作量比较大,新增一种语言的成本相对很高;
1.2 各种语言共用一套前台
采用资源文件的方式,将前台界面上的所有文字标签分语种分别存放,访问时通过不同的Locale取得相应的语言文字。
优点:
由于多种语言公用一套前台系统,开发和维护工作量相对较小,一旦开发完成,增加一种语言的成本很小;
缺点:
为了使多种语言共用一个版式,界面排版可能会相互影响;
注意事项:
页面、编译开发环境字符集均需要设为UTF-8;
技巧:
1) 用户没有选择语言区域时,以其操作系统中的语言和区域设置为准;
2) 一旦用户选择或更改了语言区域,则记住其选择,对本次会话和以后的会话均
使用该语言(需Cookie支持);
3) 资源文件名可与请求的url地址匹配,减少获取资源字符串时的代码量;
4) 对前台显示部分,国际化标签可采用自定义标签方式(Taglib)输出;
2后台数据层国际化
2.1 每种语言使用不同的数据
即每种语言使用一套单独的数据(单独的数据库或数据库Schema)。
优点:
技术上,由于表结构不需要设计多语言子表,大大减少了关联,插入、更新和查询过程简单,执行效率更高;
缺点:
由于数据是分离的,对资源(如限额)和其他数据(如价格等)的集中控制比较困难;
开发和维护的工作量比较大;
2.2 各种语言使用同一套数据,设计多语言子表
对含有国际化字段的表设计多语言子表,其中存放各种语言的数据。
优点:
由于多种语言公用一套数据,开发和维护工作量相对较小,一旦开发完成,新增一种语言很便捷;
数据集中,可以统一掌控产品和资源
缺点:
开发和维护的复杂性增大,查询关联增多,插入、更新成为多表操作;
注意事项:
1) (Oracle)数据库中国际化相关信息字段需采用nvarchar2类型;
2) 对于可能含有多语言的字段无法设计冗余字段;
3) 插入、更新的实现不再是简单的单条语句,需要增加判断,多表操作;
2.3各种语言使用同一套数据,且无需多语言子表
每条数据记录只存放一种语言的记录,但整个表中可存放多种语言的记录。
优点:
兼有2.1和2.2的优点;
缺点:
有一定局限性,见注意事项2);
注意事项:
1)(Oracle)数据库中,对于可能存放多种语言的字段,需采用nvarchar2类型;
2) 每条数据库记录只供一个国家或区域使用,不考虑一条记录多种语言共用
的情况。例如,对于一个旅游产品,只在特定的某个语言区域销售,不考虑同时在
两个或两个以上的语言区域销售,此种情况只要应用和数据库采用unicode字符集
即可满足要求,不需要设计多语言子表;
3 组合方案
可根据具体的应用特点,灵活组合(1.1、1.2)和(2.1、2.2、2.3),产生不同的解决方案。
参考意见:
只需要做前台标签国际化的情况:
1、没有需要国际化的后台数据;
2、需要国际化的后台数据相对固定(如城市、机场…),可把这些数据通过资源文件进
行配置;