什么是I18N?

I18N--是“Internationalization”的缩写,通常缩写为“I18N”。中间的 18 代表在首字母“I”和尾字母“N”之间省略了 18 个字母。单词“Internationalization”翻译成中文是“国际化”的意思-是使产品或软件具有不同国际市场的普遍适应性,从而无需重新设计就可适应多种语言和文化习俗的过程(技术概念,国际化是为本地化服务的)。真正的国际化要在软件设计和文档开发过程中,使产品或软件的功能和代码设计能处理多种语言和文化习俗,具有良好的本地化能力。

 Support levels for i18n readiness vary by products/companies, but we defines the following: 

Level 1- Product can run on an English and non-English OS and can accept non English input/output 

Level 2- Product correctly handle locale specific items such as time zone, currency, calendar differences etc . 

Level 3- Product is localizable


G11N、L10N、I18N的关系?

G11N-- 是“Globalization”的缩写,通常缩写为“G11N”,中间的 11 代表在首字母“G”和尾字母“N”之间省略了 11 个字母。单词“Globalization”翻译成中文是“全球化”的意思-是使产品或软件进入全球市场而进行的有关的商务活动(市场概念,https://www.docin.com/p-2048576477.html)。包括正确的国际化设计,本地化集成,以及在全球市场进行的市场推广、销售和支持的全部过程。企业通过全球化实现其全球化发展战略,实现全球化业务,扩大市场规模,降低软件成本,提升综合竞争力,展现企业发展实力,增强用户信心,树立市场形象。

L10N--是“Localization”的缩写,通常缩写为“L10N”,中间的 10 代表在首字母“L”和尾字母“N”之间省略了 10 个字母。单词“Localization”翻译成中文是“本地化”的意思,是将产品或软件针对特定语言和文化进行加工,使之符合特定区域市场的过程(要做不同语言的本地化版本)。真正的本地化要考虑目标区域市场的语言、文化、习俗、特征和标准。通常包括改变软件的书写系统(输入法)、键盘使用、字体、日期、时间和货币格式等。

Globalization(g11n) Software globalization is creating software for the global market consists of both world-readiness and localization.

Internationalization (i18n) I18n is optimizing product design for easy adaptation and delivery to locales with different language and/or cultural requirements.

Localization(l10n) L10n is adapting internationalized software to a specific locale by translating text and adding locale –specific components.

对于这几个术语之间的关系,有不同的标准,IBM和SUN公司使用G11N作为I18N和L10N的组合。

http://images.cnblogs.com/cnblogs_com/ITGirlXiaoXiao/201208/201208092215099192.jpg

微软则使用如下图所示的标准。

Microsoft Standard

https://images.cnblogs.com/cnblogs_com/ITGirlXiaoXiao/201208/201208092215109682.jpg

虽然每个标准从词汇选取上看起来不同,但实际上它们所描述的软件活动内容及内容的关系本质上是一样的:一个软件要想适应全球市场,首先从功能和代码设计上就要能够处理多种语言和文化习俗;只有具有了本地化能力的软件,才能再按照不同的市场对其进行加工,使其符合每一个要销售的市场的特定语言/地域/文化习俗;然后再配合相应的营销活动,将产品推向国际化市场。



什么是I18N测试?

重要性

  • 任何不良的国际化设计的软件错误,将存在于所有本地化的语言版本,都需要修改源语言程序的代码才能修复该类错误,这将增加软件的本地化成本。

  • 良好国际化设计的软件将需要最小程度的本地化测试。因为良好的区域语言支持已经集成在软件的国际化设计中,需要翻译的资源已经从程序代码中分离出来,可以很容易的翻译资源文件中需要本地化的内容,而且不会破坏程序的功能。

原则

  1. 一旦程序的代码足够稳定,尽早进行测试。

  2. 按照组件和功能特征的优先级从高到低的顺序进行测试

  3. 重点放在处理多语言字符串的直接或间接的输入/输出(I/O)

  4. 国际化功能测试与本地化能力测试并行进行。

  5. 使用伪本地化和伪镜像技术进行本地化能力测试。

测试内容

国际化软件的全球通用性包含三方面的内容:软件国际化特征功能测试、本地化能力测试和本地化测试。

  • 软件国际化特征功能测试:描述如何测试国际化软件,以保证软件在任何区域性或区域设置中都能正常运行,并且特征功能都能正确地实现。

  • 本地化能力测试:描述测试软件是否可以被方便的本地化,测试软件是否可以轻松地将程序的用户界面翻译成任何目标语言,而不需要重新设计或修改代码。

  • 本地化测试:描述如何测试本地化的软件,检查特定目标区域性或区域设置的产品本地化的质量,包括本地化功能测试、语言质量测试和用户界面测试等。

软件国际化特征功能测试

当开发全球可用的国际化软件时,软件的结构设计者必须考虑诸多因素,如语言、数据格式、字符处理和用户界面等方面的问题,软件的特征功能测试要与国际化能力测试结合在一起,确保所有的功能测试都符合全球可用性。简单的说,国际化特征功能测试关注点包括四个方面:1.  语言 2.  数据格式 3.  字符处理 4.  用户界面


语言问题描述软件在世界各种语言在显示、字母、语法和语法规则方面存在的差异,包括双向识别功能、大小写、代码页、字体等几个方面:

双向识别功能

双向 (Bidi) 是用于描述既可以从左到右 (LTR) 排列也可以从右到左 (RTL) 排列文本的功能

由英语和阿拉伯语混合而成的文本是一个好例子。软件国际化测试要检查软件是否支持双向文字。

镜像识别功能

对于阅读顺序从右到左 (RTL) 的语言,不仅文本对齐方式和文本读取顺序从右到左,而且 UI 布局也应遵循这种自然的方向

因此,测试软件的镜像特征是国际化测试的一个内容。

大小写转换

处理字符的大小写的的算法要注意某些语言的大小写字符之间没有一对一映射。

而大多数非拉丁脚本甚至不使用小写和大写的概念。例如:中文、日语、泰语等亚洲语言文字。

代码页

代码页是按某种顺序排列的选定字符代码(表示为代码数据点的字符)的列表

定义代码页通常是为了支持共享共同的书写体系的特定语言或语言组。

Code Page: is another name for character encoding. It consists of a table of values that describes the character set for a particular language.

ANSI (Windows) code page

OEM code page: such as IBM, Mac and so on.


双字节字符集

中文、日语和朝鲜语包含的字符超过 256 个,属于双字节字符集 (DBCS) 

应该测试软件是否支持双字节字符集的处理。

Character Set: A character that appears on your computer screen, whether it's a number, a letter, or a symbol, is the graphical interpretation of a number. 

For a computer to know what characters to display, it refers to a database that associates a single character with each number. 

This database is called a character set.

Unicode

由于全球化的目的是编写在任何受支持的区域设置中都同样能正常运行的代码, Unicode 编码中每个字符都有唯一的表示形式

因此,国际化软件应该采用 Unicode 编码,这是国际化测试的主要内容之一。

Character Code:A mapping, often presented in tabular form, which defines a one-to-one correspondence between 

characters in a character repertoire and a set of nonnegative integers.

Character Encoding:A method (algorithm) for presenting characters in digital form by mapping sequences of 

code numbers of characters into sequences of octets.


Character Encoding-1:Unicode:A worldwide character encoding that includes most of the world's scripts; 

it is developed, maintained and promoted by the Unicode Consortium, a nonprofit computer industry organization.

Character Encoding-1:UTF-8: (8-bit Unicode Transformation Format) is a variable-length character encoding for Unicode.

backwards-compatible with ASCII

UTF-8 encodes each character in 1 to 4 bytes. 

Character Encoding-1:ASCII (American Standard Code for Information Interchange)

ASCII encoding is a character-encoding scheme based on the ordering of the English alphabet.


字体

在进行国际化测试时,要注意测试软件是否硬编码字体名称和字体的大小

例,如果对显示英文字符但不显示日语字符的字体名称进行硬编码,所有本地化的日语文本将不会正确显示

另外,运行软件的计算机上可能没有安装程序需要的字体。

换行和断字

亚洲 DBCS 语言的规则与西方语言的规则完全不同。

如,与大多数西方书面语言不同,中文、日语、朝鲜语和泰语不一定使用空格将一个字同下一个字区分开。

泰语甚至不使用标点符号。对于这些语言,国际化软件不能简单地将换行和换行算法基于空白字符或标准断字规则。

输入法编辑器

输入法编辑器 (IME) 也称为前端处理器, IME 由一个将键击转换为拼音和表意字符的引擎和常用的表意字词典组成。

当用户击键时, IME 引擎尝试将键击转换为表意字符或字符。要测试软件是否可以采用不同的 IME 输入各种文字。

键盘

键盘布局因区域设置而异。某些字符并不是存在于所有的键盘布局中。

测试国际化软件是要注意软件再分配快捷组合键时,确保可以使用国际键盘重新产生它们。

某些快捷键可能并非适用于特定区域设置的每种键盘布局。例如,某些区域性或区域设置使用不止一种键盘,如东欧和大多数讲阿拉伯语的国家/地区。


数据格式设置问题从用户的角度看,是源语言或区域设置编写的应用程序在处理国际化数据时存在的问题。数据格式包括
地址、货币、日期、数字、纸张大小、时间和度量单位

地址

国际化软件中常见的错误是要求访问者在标记为“State (州)”的字段中输入文本。

虽然这对居住在美国的人来说是可以理解的,但却使其他地区的访问者混淆,在那里“州”不是地址的一部分。

对用户输入的数据执行有效性检查时同样必须灵活。例如,不要假设邮政编码有特定的格式或长度,或者仅由数字组成。

货币

货币格式设置必须考虑货币符号、货币符号位置和负号的位置

大多数货币使用与区域性或区域设置中的数字相同的小数点分隔符和千位分隔符。

但是,在一些地方并不是这样,比如在瑞士,瑞士法郎的小数点分隔符是句点 (Sfr.127.54) ,而在其他任何情况中小数点分隔符是逗号 (127,54) 。

日期

日期格式设置在全世界不是统一的。虽然每种日期均显示日、月和年,但它们的表示顺序和分隔符有很大不同

实际上,同一国家/地区的不同区域之间也可能存在许多差异。

除了日期格式设置外,可能还需要改编应用程序以在各种日历下运行。虽然普遍使用公历,但某些国际化软件可能支持其他日历,如阴历。

时间测试软件对时间的处理时,要注意时间的格式使用 12 小时制还是 24 小时制、用于分隔小时、分钟和秒的字符、时区的存储和显示。
数字

处理数字值时,注意数字的千位分隔符、小数点分隔符、显示负数、数字分组、百分数,不同区域设置的数字格式不同

要测试国际化软件支持当地的区域设置的数字格式,并且能够处理这些数字。

纸张大小

美国和加拿大纸张大小(Letter 、Legal 等)不能满足世界市场上所有用户的需要

例如,欧洲和亚洲的大多数地区使用一种称为 A4 (297 x 210 毫米)的标准,而美国和加拿大的 Letter 纸的大小(279 x 216 毫米)。

如果应用程序需要打印,则应允许配置默认纸张大小。

电话号码

电话号码(连同地址一起)的格式设置在不同地理区域有很大的不同

因此,处理电话号码的输入字段和例程应当能够处理各种格式。

注意,有不同的分隔符(“ - ”、“ .” 和空格)、分组(每组 2 、3 、4 、5 和 6 位数)和数字位数 (7-11) 。

因此,应测试软件对电话号码的显示和存储方式,不要采用一种给定的格式,而应留下非常大的余地。

度量单位

全世界使用不同的单位和尺度度量事物。最常用的系统是公制(例如米、公升、克等)

而美国仍使用英制(例如英尺、英寸、磅等)。度量种类可能是长度、重量、面积、体积、温度、纸张大小、角度表示法,等等。

因此,必须确保应用程序可以以不同的体系显示度量结果。另外,确保用户知道应用程序显示的是那种度量单位的体系。

字符处理描述字符串资源中的文本在应用程序的用户界面中显示存在的问题。在开发全球可用的国际化软件时,必须考虑语言之间的差异,特别是那些与字符串相关的差异。应验证需要本地化的字符串,确保应用程序允许字符串增长,并确保应用程序不依赖字符串连接。

字符串连接

开发人员可能使用字符串连接来减少字符串的大小

但是,该方法将极大地限制应用程序的本地化,因此,在对国际化的代码进行审阅时,要注意测试是否有字符串连接的编码问题。

词序问题

不同语言组成句子的词的顺序通常是不相同的

例如,在德语和日语中,动词通常出现在句尾。

由于本地化过程中可能改变字符串的顺序,因此本地化版本会产生缺陷,通过避免字符串连接并在资源文件中使用完整的字符串,可容易地修正此问题。

字符串增长

在大多数情况下,翻译后的字符串通常更长,例如将字符串从英语翻译成德语

因此,要测试软件在分配字符串的长度时,是否限定了字符串的长度。

字符串排序和比较

不仅各种语言的字母顺序不同,而且词典和电话簿中的条目排序惯例也完全不同

因此要测试软件对字符串的排序功能是否符合不同区域的使用惯例。

字符串和资源文件要测试软件国际化设计时是否考虑到本地化的问题,将字符串资源从代码中分离出来,字符串资源应位于单独的文件中。


用户界面问题提供有关设计全球可用的 UI 元素的信息。用户界面的测试包括菜单和对话框、图标和位图、热键和快捷键和 UI 控件

菜单和对话框
本地化应用程序时,菜单和对话框也可能增长。因此,必须设计好界面,避免在本地化后需要调整控件或其他元素的大小。
图标和位图

图标和位图在描述某些功能时通常不使用文本。当使用图标和位图时,避免使用不是国际标准的位图

例如,一个在美国表示乡村风格的邮箱的位图在其他地区的居民看来像是其他东西。

欧洲人通常将这个位图理解成烟囱。还要避免使用包含文本的位图,本地化图像中的文字不仅费时间,文本增长也可能成为一个问题。

确保位图和图标具有文化认同性也很重要。在一种区域性或区域设置中可以接受的内容可能不适合另一种区域性或区域设置。

热键和快捷键

不同的区域性或区域设置有自己的键盘布局,而且某些字符并非存在于所有的键盘布局上

开发应用程序时,确保所有的热键和快捷组合健在国际键盘上可用。

快捷键不能由双字节字符集 (DBCS) 中的字符组成,要避免使用的热键字符包括 @ $ {} [] \ ~ | ^ ' < > 。

UI 控件

切勿将一个控件隐藏在另一个控件之后。由于语言扩展问题,在本地化应用程序时,将一个控件隐藏在另一个控件之后可能行不通

例如,用德语本地化一个英语应用程序时,一个隐藏在另一个按钮之后的按钮可能延伸到覆盖它的按钮之外。

另外,注意测试和检查软件终是否将 UI 控件用作句子的一部分。如果将控件用作句子的一部分,则句子会遇到与连接字符串相同的问题。


I18N测试关注点有哪些?

  1. 基本功能测试(如是否捕获异常的测试,出错时不应该在界面出现代码)

  2. 安装和卸载的测试(如卸载时除了用户创建的文件是否留下任何文件或者注册项的测试)

  3. 页面布局和显示的测试(如页面布局是否不合理,界面是否不友好,页面显示是否有截断现象,button或选项排列方式(横向或竖向)是否一致的测试

  4. 双字节语言显示的测试(如是否有乱码、双向识别、字体的测试)

  5. 双字节数据在传递过程中的显示的测试

  6. 所有有输入的地方进行双字节的测试

  7. 中文和日文正常和特殊字符的测试(如日文的“能”和“\”测试)

  8. 中文的排序

  9. 日文平假名、片假名、全角、半角、不同段排序的测试

  10. 双字节文件名和路径的测试(如导入、导出文件测试)

  11. 本地化后版本与英文版对照测试(如页面和相应文档翻译的一致性、正确性的测试和是否有未翻译的词语的测试)

  12. 不同系统下特殊标识的测试(如Windows 下路径分隔符“/” 和Linux/Unix 下路径分隔符“\”的测试)

  13. 帮助和文档的正常使用的测试(如help文档是否能打开,help文档是否及时更新,help文档的内容是否与页面显示类容一致,help文档中的链接是否能正常打开,图片是否能正常显示)

  14. 拷贝、剪切和粘贴测试

  15. 打印的测试(如是否能打印,打印内容是否被截断

  16. 查找和过滤功能对双字节的测试

  17. 不同国家键盘的测试

  18. 日期和时间的测试

  19. 货币和数字的测试

  20. 地址和姓名的测试

  21. 度量单位的测试

I18n Key Points

     1.If the input is request, input non-ASCII characters (i.e. foreign Characters). 

     a.Make sure that the non-Ascii characters are able to input and displayed correctly.

     b.The sorting is correct (name and date/time)

     c.The date/time/calendar format is correct.

     d.Make sure the max length of input string is detected correctly

     2.Basic functional testing (no any input)

----------------------------------------------------------------------

     e.Make sure the functionality is working as expected

----------------------------------------------------------------------

     3.Scheduling test

     f.Make sure that the different date/time format can be recognized without any error. (for some test cases (schedule), please type in different date/time format to make sure that the program can work without any error or crashes), and the scheduled tasks can be started at the scheduled time

     g.Make sure that the different time zone, the scheduled task is working as expected

     4.Find 

     h.Make sure that type in the Non-Ascii characters, and “Find” still can find the right word that you are looking for

     5.log files: 

     i.Make sure that there is no garbled characters on the log file. It means all the international characters should be displayed correctly on the log files.

I18N的质量风险有哪些?

已上的几个问题

以及方法==》

如何保证I18N的质量(测试策略和测试方法)?

软件的国际化测试主要测试软件的国际化功能特征,需要测试国际化软件的通用功能、文本处理功能和区域支持功能。 

采用下面的方法进行国际化测试:

测试通用功能
  • 在各种语言环境下安装应用程序。

  • 各种系统和用户区域设置的通用功能。

  • 通过各种区域设置卸载应用程序。

测试文本处理功能
  • 使用不同区域的输入法编辑器交互式文本输入。

  • 多语言文本的剪贴板操作。

  • 用户界面的文本处理。

  • 双字节字符集的输入和输出。

  • 多字节字符集文本的缓冲区大小的处理。

测试区域特征功能
  • 遵循区域标准,正确输入、存储并检索区域特定数据。

  • 验证带有数据分割符的输入时间、日期和数值。

  • 纸张和信封的大小和打印的正确性。

  • 区域有关的度量衡的处理功能。

再参考沙特的补充

参考内部

gpt问下,各个点对应沙特的


实际测试中:可以先以EN 或 CN 为主测试功能逻辑,然后对应前端界面和后端提示文案,针对性进行语言和界面展示测试,保证功能和界面/文案都没问题

模块功能点路径EN 截图/文案CN 截图/文案