国际化i18N与本地化Locale,以及CLDR

习惯上,internationalization(国际化)简写为i18N,中间的数字为省略的字母个数。i18N是指设计一种应用软件的过程,这种软件无需做大的工程改变就能适应不同的语言和地区的需要。 对 Web 应用来说,国际化尤为重要,因为潜在的用户可能来自世界的各个角落。


在i18N中用到的最多的可能就是翻译了,包括信息翻译 和 视图翻译。 前者将一条文本信息翻译为期望的语言,后者将整个文件翻译为期望的语言。一个翻译请求包含要被翻译的对象,对象所用的源语言,和对象所需要翻译到的目标语言。 

信息翻译

信息翻译是指将信息从 源语言 翻译为 目标语言

有如下几种信息源:

  • (1) 信息的翻译存储在一个 PHP 的 键值对 数组中。 原始信息为键,翻译后的信息为值。每个数组表示一个特定信息分类的翻译,分别存储在不同的 PHP 脚本文件中,文件名即分类名。 针对同一种语言的 PHP 翻译文件存储在同一个以区域 ID 命名的目录中。而所有的这些目录位于 basePath 指定的目录中。

  • (2) 信息的翻译存储在 GNU Gettext 文件中。

  • (3) 信息的翻译存储在数据库的表中。


在 Linux 系统中,通过定义一组环境变量来设置程序的语言环境,以实现对i18N的支持,这种机制称为:locale(本地化)。

i18n的国际组织是 Openi18n 组织,其前身是 li18nux 组织。它原来是制定GNU/Linux 自由操作系统上软件全球化标准的国际计划,后来扩充到GNU/Linux 之外所有开放源代码的技术领域,因而更名为 Open Internationalization Initiative,由非营利组织 Free Standards Group 赞助,并为世界各大厂商所支持,对于GNU/Linux 系统上的多国语言文字处理技术和环境有决定性的影响。各个开源软件开发组织通常都有负责“国际化”和“本地化”工作的分支机构。

i18n 主要使用 Gettext 软件包使软件实现国际化支持。事实上它是一整套 i18n解决方案。现在开源程序中普遍通过分离语言文件 ,然后通过 Gettext 软件包来实现国际化发展。


以下内容摘自【1】:

如果我比别人看得更远,那是因为我站在巨人的肩上。    ——艾萨克 牛顿


我们所有的生产力都要归功于标准库。

一个设计良好的标准库不仅提供了最常用的编程结构的实现,同时它们也用一种良好的方式澄清了那些结构的概念。当一个标准库与已存在的(甚至是内部的)约定背道而驰时,事情往往就开始变得糟糕了。

标准库就应该实现标准。

当我们说技术变得很直观,通常意思是说他们是很常见的技术。当我们要构建任何新标准库时,都应该建立在IETF、ISO和其它地方定义的标准之上。

苹果MacOS上Cocoa和其他标准库不同的地方就在于在Cocoa中可以用NSLocale和NSCalendar来编码一些特定的信息,但是这大多数都归功于Unicode通用区域数据库Unicode Common Locale Data Repository (CLDR).

jQuery也提供了自己的i18N库:Globalize 1.0, 该软件也是基于CLDR,详见[4]。


参考资料:

[1] Mattt Thompson:Cocoa之死, http://www.cocoachina.com/swift/20150107/10858.html

[2] Locale Coverage, http://www.unicode.org/cldr/charts/latest/supplemental/locale_coverage.html

Code

English

 Name

Native 

Name

Script

CLDR

 target

Sublocales

Confirmed

 Fields

Modern%
enEnglish         English Latnmodern93 10,829 100%
zhChinese中文Hansmodern413,75599%
zh_Hant

Traditional

 Chinese

繁體中文Hant modern013,96999%

[3] Yii 权威指南-国际化,http://www.howzhi.com/course/2519/lesson/35397

[4] Announcing Globalize 1.0, http://blog.jquery.com/2015/04/23/announcing-globalize-1-0/










转载于:https://my.oschina.net/1pei/blog/420130

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值