没有合适的资源?快使用搜索试试~ 我知道了~
软件的本地化和国际化测试
4星 · 超过85%的资源 需积分: 31 36 下载量 133 浏览量
2011-09-17
19:29:22
上传
评论 1
收藏 1.6MB PDF 举报
温馨提示
试读
28页
关于软件的国际化和本地化测试,比较系统全面,有具体用例。是一份不错的指导文档。
资源推荐
资源详情
资源评论
8.1 国际化测试
第 8 章国际化和本地化测试的执行
软件国际化是软件工程技术的解决方案,是软件本地化的基础和前提。软件国际化理想
水平是使软件本地化过程不需要改动任何源代码就能完成。
开发的软件产品,如果不局限于国内市场,则需要考虑软件产品的国际化和本地化,以
适应国际市场的需求。对于互联网上的软件服务,像雅虎日历、Google talk 等软件产品的国
际化和本地化需求表现就更为迫切一些。
软件产品的国际化是赋予软件产品的一种能力,这种能力可以使软件产品的本地化非常
容易。理想情况下,将国际化的软件本地化时,不需要修改源代码,只需要翻译资源库,进
行特定的设置和定制就可以了。
软件本地化是一个将软件产品按特定国家或语言市场的需要进行全面定制的过程,包括
翻译、界面设置、功能调整以及参数设置等,还要验证是否符合各个地方的习俗、文化背景、
语言(包括方言)等。
在完成基本的语言版本(base code)测试之后,我们还要进行国际化、本地化的测试。
通常情况下,国际化测试可以和基本语言版本测试同时进行,而本地化测试是在国际化版本
测试完成之后进行的。
概念
(1)本地化 ( L10N,英文的 Localization 一词的简写),由于首字母"L"和末尾字母"n"
间有 10 个字母,所以简称 L10N。软件本地化是在源语言版本的基础上,通过翻译、定制
和参数配置等工作,使软件产品或系统在语言、时区、度量衡、文化、风俗习惯等各个方面
与国家和地区的相应内容一致,从而满足特定地区用户的使用需求。
(2)国际化(I18N,internationalization 的简写),由于首字母"I"和末尾字母"n"间有
18 个字符,所以简称 I18N。Internationalization 指为保证所开发的软件能适应全球市场的本
地化工作,不需要对程序做任何系统性或结构性变化的特性,这种特性通过特定的系统设计、
程序设计、编码方法来实现。
(3)全球化(Globalization),它是一个概念化产品的过程,是基于全球市场考虑的,
以便一个产品只须做较小的改动就可以在世界各地出售。全球化可以看作是国际化和本地化
两者合成的结果。
8.1 国际化测试
国际化是将来本地化的基础,即使现在还没有具体的本地化计划,软件产品也应该按照
国际化要求去做,否则,将来需要本地化时工作量会很大,几乎所有的代码都要修改。所以
国际化是核心工作,只有满足了国际化的要求之后才比较容易实现本地化,翻译只是本地化
工作的一部分,全球化是一个产品市场的概念。图 8-1 简要说明了翻译、本地化与国际化等
之间的关系。
国际化与本地化是一个辩证的关系。国际化是为了解决软件在不同语言、不同风俗的国
家和地区使用的问题,从而对计算机设计和编程作出的某些规定。简言之,国际化是本地化
的基础和前提,为本地化做准备,使本地化过程不需要改动代码就能完成。另一方面,本地
化是国际化向特定本地语言环境的转换,本地化要适应国际化的规定。
图 8-1 翻译、本地化与国际化之间的关系
8.1.1 软件国际化的基本要求
在介绍软件国际化之前,先举和日常生活密切相关的几个简单的例子。
示例
(1)姓名。英文中一个人的名字为 3 部分--First Name(名)、Middle Name( 字) 和 Last
Name(姓),在软件中显示时可以省去中间部分,即 First Name+空格+Last Name。英文
名和中文名在软件中的显示至少有两点不同:
姓和名次序正好相反。
英文名在名和姓之间必须有一个空格。
在雅虎日历中文版上,用户登录后显示的只有名而没有姓,这不合乎中文的习惯,如下
图所示,"欢迎光临 琪"是一个缺陷(如图 8-2 所示)。
图 8-2
(2)日期。美国表示日期的习惯是"月/日/年",而英国人喜欢用"日/月/年",如 2007 年
1 月 31 日,美语中表示为"1/31/2007",而英语中表示为"31/1/2007"。
(3)时区,我国处在东 8 区,即北京时间比格林威治时间早 8 个小时,而美国西海岸的时
间比格林威治时间迟 8 个小时,也就是比北京时间迟 16 个小时。在北京用户使用的软件上
显示 2007 年 1 月 31 日上午 9 点,则在美国用户的计算机上应显示当地时间为"5:00pm
1/30/2007"。
通过这几个例子可以理解软件国际化可能要碰到的各种问题,而且这些问题需要解决掉。
例如,在数据库中,不能用一个字段去存储人名,必须将"姓"和"名"分开存储;在取得"姓"
和"名"后,也不能直接将"姓"和"名"两字符串直接相加,而必须用单独的函数处理,即先判
断这个用户处在什么地区,然后采用对应的字符串处理方法。对于时间,绝不能直接在数据
库中存储各种不同时区的时间,而应该转化为格林威治标准时间(Greenwich Mean Time,
GMT)后存储到数据库中,即在数据库中的所有时间都是零时区 GMT 时间,当客户端要显
示时间时先把它转化为当地的时间,这样就不会把时间搞乱了。
从上面几个例子可以看出来,国际化软件需要从设计、编程等多个方面来实现。从程序
角度看,国际化软件的编程不能像一次性软件项目那样随意,许多东西都不能简单处理,也
不能写死(hard code)。例如,对于姓名处理、日期处理,不能仅仅通过一个简单的程序语
句来处理,而需要通过一个函数处理,根据用户所处的时区、所用的语言和所在的国家,分
别进行相应的处理。其次,软件处理和输出的文字、图片等数据,都应该从程序中分离出来,
存储在单独的资源文件中,为以后软件本地化创造良好的条件。
国际化的软件,其用户的分布很广,用户的喜好和宗教等相差甚远。从设计角度看,系
统首先要支持多字节字符的处理,支持 UniCode 字符集,然后设计出灵活的组件结构,使
之能根据要求进行剪裁、定制等;客户端的时区和语言设置被抽象出来,融入到系统的整体
设计中。如果是提供软件服务,则设计的系统架构和数据应具有很强的分布性,不仅可以在
全球范围内构造分布式的网络传输系统,而且应很好地满足数据的异地备份,系统异地故障
转移和用户就近访问系统的网络节点等一系列设计要求。
在软件国际化(I18N)测试中,设计部分的审查纳入到第 3 章中,而本章主要讨论软
件国际化的实现部分,即着重讨论如何测试或验证下列特殊需求。
支持 Unicode 字符集。如建立用于本地字符编码(ANSI 或 OEM)和 Unicode 之间变换
的字符映射表,既可以处理类似于英文的单字节语言,又能处理类似于中文、日文等双字节
或多字节语言。
支持不同时区的设定、显示和切换。
分离程序代码和显示内容(文本、图片、对话框、信息框和按钮等)。如建立资源文件
(*.rc)来存储这些内容。
消除硬代码(Hard code。指程序代码中所包含的一些特定的数据),而尽量使用变量
处理,将数据存储在数据库或初始化文件中。
使用 Header files 定义经常被调用的代码段。
弹出的窗口、按钮、菜单等的尺寸具有自动伸缩性或可灵活地调整,以适应不同语言显
示文本的长度变化。
支持各个国家的键盘设置,但要统一热键。
支持文字排序和大小写转换;
支持各国家的度量衡、时间、货币单位等不同格式的显示方式;
支持颜色字体等自定义,
拥有国际化用户界面设计。
概念
字符集是操作系统中所使用的字符映射表。最早的字符集,可以认为是 UNIX 系统使用
的,包含 128 个字符的 7- bit ASCII 字符集(包括 tabs、空格、标点、符号、大小写字母、
数字和回车键等)。随后,就是标准 8- bit ASCII,包 含 256 个字符,早期的 Windows 操作
系统使用 8- bit ASCII 字符集。由于扩展后的 ASCII 字符集还是无法满足所有语言的需求,
如汉语、日语和韩语这些语言的字符都高达几万个字符。所以产生了 16-bit 字符集(双字节、
多字节或变数字节)--统一的字符编码标准为 Unicode。
Unicode 是一个国际标准,采用双字节字符进行编码,提供了在世界主要语言中通用的
字符,所以也称为基本多文种平面。Unicode 以明确的方式表述文本数据,简化了混合平台
环境中的数据共享。目前,很多操作系统都支持 Unicode,包括 Windows 系统、Linux 系统
和 Mac OS、Solaris、IBM-AIX、HP-UX 等。Unicode 简称为 UCS,现在用的是 UCS-2,即
2个字节编码,与国际标准字符集 ISO 10646-1相对应。UCS 的最新版本是 2005 年的 Unicode
4.1.0,而 ISO 的最新标准是 ISO 10646-3:2003。
Codepage 是各国的文字编码和 Unicode 之间的映射表。例如,简体中文和 Unicode 的映
射表就是 CP936,其他的映射关系有:
codepage=950 繁体中文 BIG5
codepage=437 美国/加拿大英语
codepage=932 日文
codepage=949 韩文
codepage=866 俄文
UTF-8/ UTF-16/ UTF-32。UCS 只是规定如何编码,并没有规定如何传输、保存编码。
所以有了 UniCode 实用的编码体系,如 UTF-8、UTF-7、UTF-16。UTF-8(UCS Transformation
Format)和 ISO-8859-1 完全兼容,解决了 UniCode 编码在不同的计算机之间的传输、保存
的问题,使得双字节的 Unicode 能够在现存的单字节的系统上正确传输。UTF-8 使用可变长
度的字节来储存 Unicode 字符,这能解决敏感字符引起的问题。前面有几个 1,就表示整个
UTF-8 串是由几个字节构成的。以下是 Unicode 和 UTF-8 之间的转换关系表:
U-00000000 - U-0000007F: 0xxxxxxx
U-00000080 - U-000007FF: 110xxxxx 10xxxxxx
U-00000800 - U-0000FFFF: 1110xxxx 10xxxxxx 10xxxxxx
U-00010000 - U-001FFFFF: 11110xxx 10xxxxxx 10xxxxxx
10xxxxxx
U-00200000 - U-03FFFFFF: 111110xx 10xxxxxx 10xxxxxx
10xxxxxx 10xxxxxx
U-04000000 - U-7FFFFFFF: 1111110x 10xxxxxx 10xxxxxx
10xxxxxx 10xxxxxx 10xxxxxx
示例
<meta http-equiv="Content-Type" content="text/html;
charset=UTF-8">
<%@page pageEncoding="UTF-8"%>
比较完整的字符集列表
剩余27页未读,继续阅读
资源评论
- youhun_12020-02-04关于软件的国际化和本地化测试,比较系统全面,有具体用例。是一份不错的指导文档。是一份整体文档中的一部分。
- lcping2014-02-18还是不错的,有参考价值
- Lconankid2013-10-14介绍很详细,很全面,非常不错的文档
- daisy05792012-12-26关于本地化测试非常全面和实用的文档。
- a0307031302012-12-11里面能找到我需要的东西
lunarnan
- 粉丝: 52
- 资源: 17
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功