很早就想写一篇关于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 LANG=zh_CN.UTF8
【
Locale
】
在计算机本地是一组参数的设置:定义了用户的语言,国家地区,和任何特殊偏好。用户希望看到的自己的用户界面。
通常一个本地标识包含至少一个语言标识和地区标识。
本地设置包含:
1.
数字格式设置
2.
字符分类,大小写转换设置
3.
日期
/
时间
格式设置
4.
字符串排序规则设置
5.
货币格式设置
6.
纸张大小设置
7.
还有其他微小的设置等等
转载请注明出处:www.txway.cn