很早就想写一篇关于G11n的总结,一直都是因为各种原因拖延到现在都没有去总结,今天决定静下心来,把我对G11n的理解完整地做一个总结,当然这纯属个人经验总结,难免有理解本身错误的地方,希望各位网友们不要吝啬你们的留言,多多指正。


【全球化概念】

G11N是全球化globalization的缩写

I18n 是国际化internationalization的缩写

L10n是本地化localization的缩写

G11N=I18n+L10n

全球化:设计和开发软件产品以便可以在多个区域设置中运行的过程。为了在受支持的的区域设置中很好的运行代码,全球化设计支持这些区域设置的功能。

国际化:设计和制造适应不同区域要求的产品的过程。国际化不考虑语言国家/地区和文化,也就是抽离本地化,功能和代码涉及考虑在不同的地区运行的需要,这样的开发过程叫国际化。

本地化:按照特定国家/地区或语言市场需求进行加工,适合特定市场的过程。考虑到:语言,文化,习俗等。

【国际化本地化检查点】

国际化:

1.       功能,这是所有测试的基本部分。

2.       输入/输出,使用Non-AscII的字符。

3.       日期显示/打印,使用不同的字符集

4.       硬编码检查

5.       菜单和对话框设计,是否有足够的文字扩展空间

6.       英文文本正确性

7.       检查图标/图形能否被本地化

本地化:

最基本的功能以及下面这些

1.       翻译,没有翻译,过度翻译

2.       重叠,截断,没有对齐

3.       正确的字体类型

4.       打印类型

5.       热键和快捷键

6.       语言环境设置和字符集的选择,对产品的影响

7.       内容本地化,帮助文档

8.       图形和多媒体

9.       链接

【字符硬编码】

软件需要本地化的字符写在代码内部,称作字符硬编码。

【国际化本地化区别】

1.       国际化从产品设计就开始了,不能有任何的如日期,货币,地址格式等的硬编码。

2.       本地化与给予的文本和实际数据有较大关系。比如,本地化在编码和UI级别处理字符串。因此,确定使用什么样的日期格式是本地化的一部分。

【国际化本地化bug举例】

1.       国际化bug:字符显示乱码,等

2.       本地化bug:截断和重叠,等

【翻译和本地化】

翻译:将文本从一种语言转换到另一种语言,机械式转换单词。

本地化:要适应到目标地区语言学领域的语言和文化系统的原始内容

【linguistic语言学】

检查文本和文档翻译是否正确

【伪本地化Pseudo测试】

本地化能力测试

【手动输入和拷贝的区别】

手动输入是根据系统当前选择的字符编码。

拷贝可以将文本字符编码格式一起拷贝

【字符集Character set】

字符集就是在计算机上显示的数字,字母,文字,符号。计算机知道怎样去显示一个字符,它是是指一个数据库,每一个号码相关联的单个字符,这个数据库就被称为字符集。

常见的字符集:AscII, GB2312,BIG5,Unicode

【ASCII】

基于罗马字母表,通用单字节编码的系统

特征:7位共128个字符

ASCII扩展字符集:8位共256个字符

【GB2312】

原中国国家标准总局发布

二维矩阵 94 x 9 4 区和位唯一位置由区和位组成,所有字符都可以通过区位码转换为数字信息。区位码è区码+A0H,位码+A0H è存储码

特征:1. 分区表示 2. 双字节表示

编码:高地位分别加0xA0

【BIG5】

台湾

【Unicode】

通用八位编码字符集,世界所有的符号都纳入其中,来解决乱码问题。

特征:每个字符统一且有唯一的二进制编码。 114112个编码效率高但是传输和存数消耗资源。è为了提高效率采用UTF8编码,能自动选择编码长短。

编码:16位二进制 U+

【字符码Character code】

1.       一个映射,定义了一个字符之间一对一的一一对应关系中的字符集和非负整数集

2.       包括一组值表,描述了一个特定语言的字符集。

【字符编码Character encoding】

对字母和符号进行二进制编码的二进制代码称作字符编码。

常用字符编码:Ascii编码,EBCDIC,GB2312,GIG5,Unicode编码

【乱码的产生】

1.       系统或软件缺少对某种字符编码的支持。需要安装编码表

2.       二进制码进入计算机后被各种不同编码解释为不同符号。所以打开文件必须先知道编码方式。如果选择错误的代码页,就会显示乱码。

常见的BIG5和GB2312,中文,韩文显示

问号?的产生是因为Unicode到代码页转换失败。

【网页乱码修正】

修改charset = “” 或者为浏览器安装多语言支持

【不同编码的计算机交流】

两台机器使用不同编码表,比如A计算机是AscII, B计算机是EBCDIC,在发送数据给对方前要实现告知对方自己使用的编码,或者通过转码使不同编码方案的两个系统可以沟通自如。

【UTF8】

用可变长字节编码Unicode字符

1-4字节

【UTF16】

也是可变长

UTF16比UTF8的好处是大部分字符都以固定长度(2个字节)存储。

通常为1、2或4字节

UTF16无法兼容于ASCII编码

打开文本输入”abc”另存为UTF16去掉”Add a Unicode Signature(BOM)”,再打开发现字母间被添加空格,如果是中文会变成乱码。

 

【Base64编码】

发送端GB2312  --- Base64编码-à Ascii à接收端 --- Base64编码-à GB2312

【字符集与字符编码的关系】

一个字符集可以有很多字符编码(必须至少有一个)

比如Unicode字符可以有Unicode编码,UTF8编码,UTF16编码等等。

【代码页(内码表)Code page】

历史:早期的有BIOS代码页,OEM代码页(VGA功能显示字符)

图形OS:使用自己的字符呈现引擎支持很多不同字符编码。

代码页 = 字符集编码

代码页描述

936    中文

932    日文

…      …

字符集和字符编码方案对每一种语言字符都用唯一的数字索引表示

微软代码页:通过指定的转换表将非unicode的字符编码转换成为同一字符对应的系统内部使用的unicode编码。

ANSI:在中文系统中默认是GB2312编码,日文系统中默认是JIS编码

在中文系统打开ANSI记事本输入韩文字符保存提示Unicode格式的字符会丢失,保存后变成问号,这是因为不同ANSI编码之间不兼容,国际间交流无法将两种语言文字存在同一段ANSI编码的文本中。

国际化数据应该用Unicode数据。

【修改locale】

1.       Window:mode con cp select=437

2.       Linux:export.UTF8

【Locale】

在计算机本地是一组参数的设置:定义了用户的语言,国家地区,和任何特殊偏好。用户希望看到的自己的用户界面。

通常一个本地标识包含至少一个语言标识和地区标识。

本地设置包含:

1.       数字格式设置

2.       字符分类,大小写转换设置

3.       日期/时间格式设置

4.       字符串排序规则设置

5.       货币格式设置

6.       纸张大小设置

7.       还有其他微小的设置等等

 

         做了两年的全球化测试工作,最近面临职位提升,不禁要问一下自己,我对自己的工作有多少了解?这两年时间有多少积累?每个人刚开始参加工作的时候其实都是差不多的,当工作一段时候后,人与人之间的差距就会体现出来。所谓个人的提升就是总结过去的经验,学习到的东西,以及在团队中可以有更好的价值体现。