国际化软件开发需要遵守国际化技术准则,采用软件项目(或产品)方式进行。一个完整的国际化软件项目将包含很多内容和阶段,其中软件的国际化和本地化是两项主要内容。
为了更深入地理解国际化软件的开发流程,我们先从分析国际化项目失败的原因开始,然后列举国际化软件的设计准则,讨论项目团队的组织结构。在此基础上,再详细论述国际化软件的开发流程和本地化流程。
1. 国际化软件项目失败的原因分析
开发国际化项目大的难点是避免失败。由于软件生产过程和技术的复杂性,软件业在20世纪60年代出现了“软件危机”——失败的几率很高。时至,虽然软件开发和管理技术已经取得了“突飞猛进”式的发展,但是“软件危机”仍然没有根本消除,新开发软件项目失败的比例仍然居高不下。
与面向单一区域、单一语言的软件开发项目相比,开发国际化软件项目不仅在技术上,而且在项目需求和管理的各个方面都更加复杂,国际化软件项目失败的案例较多,开发国际化软件项目成为高风险的生产活动。
分析那些失败的国际化软件项目,其原因可能多种多样,但是没有遵守国际化软件的设计准则和技术要求,没有考虑国际化和本地化的使用要求等因素成为大的问题。具体而言,导致国际化软件项目失败的原因主要有以下几个方面:
在初编写软件规格说明和开发阶段没有考虑软件的国际化问题,经常在软件编码完成后进行测试时,才发现大量的国际化设计缺陷。
虽然考虑了软件的国际化需求,但是没有深入考虑当地用户和市场的特定需求。
软件开发团队不熟悉国际化开发技术,不知道如何开发和管理国际化软件。
测试团队不熟悉国际化测试技术,没有在本地化的操作系统和设备上进行产品测试。
项目管理团队低估了软件国际化和本地化处理所需的时间。
国际化软件开发公司让当地不合格的软件经销商进行软件本地化处理。
为了尽量避免国际化软件项目的失败,需要研究、学习和遵守国际化软件准则,充分运用国际化设计技术、工程技术、本地化技术,深入获取不同区域市场的特定功能特性需求和理解文化习俗等方面的差异。
2. 国际化软件设计准则
在进行国际化软件设计实践过程中,软件专业人员逐步总结出一些通用的准则。遵守这些准则,可以尽可能地避免国际化软件项目失败,提高质量,降低开发和维护费用。
国际化软件设计需要遵循的通用准则如下:
在国际化软件项目的初期融入国际化思想,并且使国际化贯穿于项目的整个生命周期。
采用单一源文件进行多语言版本的本地化,不针对不同的语言编写多套代码。
需要本地化的文字与软件源代码分离,存储在单独的资源文件中。
软件代码支持处理单字节字符集和多字节字符集文字的输入、输出和显示,并且遵守竖排和折行规则。
软件代码应该支持Unicode标准,或者可以在Unicode和其他代码页(Code Pages)互换。
软件代码不要嵌入字体名,也不要假设使用某种字体。
使用通用的图标和位图,避免不同区域的文化和传统差异,避免在图标和位图中嵌入需要本地化的文字。
菜单、对话框等界面布局能够满足处理本地化文字的长度扩展的需要。
源语言的文字要准确精简,使用一致的术语,避免歧义和拼写错误,以便进行本地化翻译。
保证不同区域的键盘布局都能使用源软件的快捷键。
考虑不同区域的法律和文化习俗对软件的要求。
如果软件中采用第三方开发的软件或组件,需要检查和确认是否满足国际化的要求。
保证源语言软件可以在不同的区域和操作系统上正确运行。
软件代码中避免“硬编码”,不使用基于源语言的数字常量、屏幕位置、文件和路径名。
字符串的缓冲区长度要满足本地化字符扩展的长度。
软件能正确支持区域排序和大小写转换。
3. 项目与团队
项目是为完成某一项特定产品、服务或结果而实施的一项临时任务,它具有明确的目标、起止时间和预算。
复杂的项目需要成立项目团队,来自不同或地区的具有不同技能和经验的人员,为着共同的任务目标相互配合,共同完成项目的不同子任务。
国际化软件的开发是复杂的工作,需要良好的项目规划,成立有协作精神的团队,由于现代软件设计的复杂性和本地化对语言质量的较高要求,经常由分布在世界各地的多家公司的不同技术和管理人员组成国际化软件项目团队。
一般地,国际化软件项目可以分为规划阶段、实施阶段和验收结尾阶段。每一阶段的任务都需要考虑国际化和本地化需要,而且尽早进行国际化需求分析,可以有利于控制项目成本和进度。