软件本地化与国际化的关系
看到有人在问全球化和国际化的关系,国际化和本地话的关系,我们今天就简单说说这三者之间的关系。
我们所说的全球化,国际化,本地化都是针对软件来说的。简单的来说全球化=国际化+本地化。
所谓的全球化,就是软件的目标市场并不是一个国家,而是多个国家或区域,我这里借用一下崔启亮老师的书里面的定义
全球化软件是为全球用户设计,面向全球市场发布的具有一致的界面,风格和功能的软件,他的核心特征和代码设计并不仅仅局限于某一种语言和区域用户,可以支持不同目标市场的语言和数据的输入,输出,显示和存储。全球化软件也称为国际化软件,全球化对应的英文是Globalization,缩写为G11N.G是首字母,N是尾字母。11表示在首字母G和尾字母N之间省略了11个字母。
其实全球化软件按照字面意思理解的话也可以叫国际化软件。全球就是针对多个国家的意思,国际化也是针对多个国家的意思,但是全球化软件在开发过程中又可以分为两个大的部分,一般叫做国际化和本地化,为了将此国际化和彼国际化分开,所以叫做全球化。 所以全球化=国际化+本地化
这块主要是定义的问题,如果把一个面向全球用户的软件叫做国际化软件也可以,但是如果在做这个软件的公司内部就不好区分这个大的国际化和他下面细分出来的国际化,所以一般就叫做全球化。所以如果你是给公司外部的人来说,不关注技术细节的话,说你的产品是全球化软件或国际化软件都可以。但是公司内部具体去做这个软件的话最好还是将全球化和国际化定义严格分开。崔启亮老师的书>,我感觉名字叫做全球化软件测试可能会更好一点,当初我看了名字我还以为是讲做国际化的,结果发现国际化和本地化都讲。
下面我们来说说国际化和本地化的关系,其实我和项目组里的人合作了很长时间,他们有时候也是分不清楚国际化和本地化,大家对本地化可能了解的比较多,因为这个也比较好理解,就是要做不同语言的本地化版本。但是国际化具体做什么他们就不是特别清楚,所以两个老是搞错。
我们还是来引用崔老师的定义:
软件国际化就是在软件设计和文档开发过程中,使得功能和代码设计能处理多种语言和文化习俗,能够在创建不同语言版本时,不需要重新设计源程序代码的软件工程方法。国际化的英文单词是Internationalization,所写为I18N,其中I是首字母,N是尾字母。18表示在首字母的I和尾字母N之间省略了18个字母
软件本地化是将一个软件产品按照特定国家/地区或语言市场的需要进行加工,使之满足特定市场上的用户对语言和文化的特殊要求的软件生产活动。本地化的英文对应Localization,缩写为L10N,其中L为首字母,N是尾字母,10表示在首字母的L和尾字母的N之间省略了10个字母。
我们从上面的描述上去分析,国际化需要保证功能和代码设计能处理多种语言和文化习俗,在创建不同语言版本时,不需要重新设计源程序代码,这个说明国际化实际上是为本地化服务的,其实在软件开发过程中加入国际化的设计就是为了更好,更快的出本地化版本。国际化并不针对某一特定语言来做,国际化做好了的话,你的软件就可以处理多种语言和文化习俗,语言也就是各种国家的文字显示,输入输出,各种语言的操作系统上运行,习俗通常指的是区域相关的,比如日期时间显示格式,数字,货币符号,姓名显示顺序等。当你的软件如果国际化做的比较好时,在做本地化时就不需要重新设计或修改源代码,只需要进行资源文件的翻译,然后出本地化的build.而本地化是针对特定语言的,特定市场的,如果该语言和该市场没有特殊要求,那么简单的说就是一个将资源文件进行翻译,然后出一个本地化的build,然后测试该本地化build上本地化问题,比如字符串没有翻译等,这个是全球化软件最理想的情况,但是往往个别国家或区域对软件在基础功能上又有些特殊的要求,本地化组需要在基于已经发布的英文版上增加特色功能然后自己发布。
我们简单的总结一下本地化测试和国际化测试,基于比较理想的全球化软件开发模式,各个国家没有自己特殊的需求
1、测试需要用的操作系统:
国际化测试人员一般会基于多个语言的操作系统进行测试,因为国际化测试需要负责软件对各个不同国家操作系统的支持。一般至少选择两个,亚洲为代表的比如日语,和欧洲为代表的,比如德语。
本地化测试人员一般只在某一个特定语言的操作系统进行测试。除非该测试人员要负责多个语言的本地化。
2、测试的build
国际化测试一般用英文build和伪本地化build进行测试,英文build一般主要用来发现国际化第一级和第二级的问题,伪本地化build主要用来测试国际化第三级的问题。
本地化测试一般用已经翻译过的本地化build.
3、 bug的处理方式
国际化的bug一般都是需要通过修改代码才行修改好
本地化的bug一般都是通过修改翻译,修改资源文件来修复,不需要修改代码(这个是理想情况。)
4、测试的核心关注点不同
国际化测试关注针对各种语言的支持,概括来说就是对DBCS,Hi-ASCII的支持,包括显示,输入,输出等,还有对于不同国家的时间日期格式,货币符号显示等
本地化测试主要关注自己测试的语言上的输入,输出,显示,所测语言上一些特殊性等。
5、测试进入项目的时间不同
“软件本地化”是什么意思?
软件本地化测试是软件本地化项目的一个重要组成部分,在软件行业,尤其在与国际接轨的当今,已越来越受到重视。当某个公司或者机构希望将其产品和服务推广到本土以外的地方时就少不了“本地化”的环节。大抵要先去考察一下当地的各种环境,然后相应的改造自己的产品和服务,使之看起来如同本地化产出的一样,从而尽量淡化其在最终用户眼中的外来色彩,目的则无非是为了确保产品或服务在当地市场最大可能的接受程度。
软件本地化测试是提高软件本地化质量的重要手段,是控制软件本地化质量的关键措施。目的是为了发现本地化的软件中的错误和缺陷,通过修复这些错误和缺陷,提高软件本地化质量。综合的软件本地化测试解决方案,可以保证软件发布进度、降低支持和维护成本,并保证产品有上乘的质量。
软件本地化测试是一个工程系统,包含多个紧密联系的环节和内容。软件本地化测试作为保证软件本地化质量和可靠性的技术手段,随着软件国际市场的激烈竞争和软件用户对质量要求的不断提高,软件本地化测试在软件本地化项目中的作用更加突出。软件本地化测试的关键在于软件供应商(Software Provider)和本地化提供商(Localization Vendor)对测试的高度重视,包括测试资源、测试文档、测试流程、测试方法和测试管理等方面有效准备和正确实施。
软件本地化测试是对本地化软件质量控制的重要手段,是运行本地化软件程序寻找和发现错误的质量控制过程。
软件本地化测试是由软件本地化提供商和软件供应商互相协作的软件质量保证活动。源语言软件和多种语言本地化软件同时发布,已经成为大多数软件提供商追求的软件发布策略。因此,软件本地化测试将于源语言软件的测试保持同步。在软件本地化测试中发现的源语言软件的功能设计错误,需要由软件供应商处理。软件供应商已知得其他源语言软件的功能错误,需要通知本地化服务商,以免重复测试和报告相同的错误,影响测试效率。
软件本地化测试比功能测试都有哪些方面需要注意
本地化测试其实就是兼容性测试,主要注意的地方就是语言。本地化的概念就是指当地所用的计算机在硬件和软件上具有一些当地的特色,最主要的就是当地系统所用的语言。比如英语、日语等,同样的“登陆”一词,不同的语言在界面上显示的长度不一样,所以页面上的东西是主要测试点。另外就是常规功能测试,要将曾经在开发阶段测试过的功能都要再走一遍。说白了就是把他当做在另一个操作平台的上的兼容性测试。还有就是根绝当地用户使用软件的情况,对一些软件的功能进行“特殊关照”。兼容测试可以当做开发完成之后(包括功能测试完成)的验收测试,很多项目情况为了节省时间,把兼容性测试与验收测试合并到一起做最终的调整。
这种测试如果有自动化的基础的,我是指项目应用基础,不是个人能力基础。即有现成的自动化脚本可以用时,只需做少量的修改。那么用自动化的方式是最好的测试手段。如果没有的话,只能通过测试人员的经验去掌握了,耐着性子都点一下吧,其次主动分析一下问题的所在,比如那些页面文案比较多,那些系统开发时的代码判断是用了特定的字符,尽量的“脑洞大开”吧。
软件本地化的相关测试
软件本地化测试的测试对象是本地化的软件,需要在本地化的操作系统上进行。虽然本地化的软件是基于源程序软件创建的,但二者的测试内容和重点具有很大的不同。一般地,二者的不同在于:第一,测试顺序不同。首先要现对源程序软件进行测试,然后再创建本地化软件,测试本地化软件。第二,测试内容和重点不同。源程序软件主要测试功能和性能,结合软件界面的测试。本地化软件的测试,更注重因本地化引起的错误,例如,翻译是否正确,本地化的界面是否美观,本地化后的功能是否与源语言软件保持一致。第三,测试环境不同。源程序软件测试通常在源语言的操作系统上进行。本地化软件在本地化的操作系统上进行。本地化测试过程中,需要同时运行源程序软件和本地化软件,依照源程序软件结果作为本地化软件的主要参考。