为了让 Linux® 应用程式在全世界范围都能够使用,而不会在西方语言和世界上其他语言之间产生任何区别,我们应该发行一些本地化后的版本,他们能够输入、存储、提取或呈现任何语言,而不管这些语言是多么复杂。多语言库,或称为 m17n,为类 UNIX® 平台上的任何语言提供了一个国际化解决方案。
在很短的时间之内 —— 总共还不到 20 年 —— 个人电脑已成为我们工作和生活中的一种必需设备。受到半导体和处理器快速发展的推动,大量的供给商使得电脑的价格一落千丈,Internet 也已在全球广为分布,个人电脑现在已不再是一种奢侈品,而是一种常见的家用电器了。
实际上,在很多富裕的国家(例如美国、日本、英国),每两个家庭就会拥有一台电脑,并且会使用宽带服务。就全世界来看,虽然家庭收入可能会有很大的不同,但是个人电脑都很容易购买了,即使在马尔代夫,我们也很容易购买到笔记本。另外,假如我们碰巧说的是 Dhivehi 方言(马尔代夫的一种方言),微软也为我们提供了一个这种版本的 Microsoft® Windows® XP 操作系统。
就全球广泛接受的个人电脑来说,大部分现代操作系统都提供了一些编程库来促进 国际化 的发展,或将软件调整为支持多种语言的。国际化(通常简写为 i18n,节选自 i-nternationalizatio-n)库通常都会将应用程式的文本资源(按钮标签、用户界面[UI] 提示和菜单选项)保存成多种语言的。在启动国际化后的应用程式后显示哪种语言,这要取决于用户的区域配置 —— 通常,这是个可配置的系统或个人帐号最好选择项。
理想来说 —— 至少对于单独软件供给商来说 —— 相同的可执行程式以日语或希腊语运行时都能运行得相同好。然而,构建 “本地方言” 版本的应用程式的情况远远没有这么理想。包括被广泛认可的 ISO(International Standards Organization)/IEC(International Engineering Consortium)10646 和 Unicode,没有哪种字符编码能够解决如何实现任意语言的输入和呈现问题。ISO/IEC 10646 和 Unicode 只指定了如何存储、检索和排序字符连同字符的特别组合。例如,这些标准并没有规定统一的格式、嵌入式数据或标识来让使用泰国语书写的文档怎样才能按照泰国语的规范规则正确地呈现出他们的样子来。是的,Unicode 能够维护使用泰国语书写的文档的内容,也能够确保这种文档在任何使用 Unicode 的平台上都能够很好地进行移植,但是他并不能确保我们能够正确查看文档,也不能确保文档所呈现出来的样子和作者的意图一致。
我们来考虑一下这种情况:尽管 Linux GNU C 库(glibc)提供了一些函数来处理 ISO 10646 兼容的 31 位字符,但是他并不能确保这些字符能够在显示设备上正确进行显示。有些 glibc 字符串函数,例如 strcat() 和 strlen(),都能够正确地处理多字节的问题,但是要正确显示阿拉伯语,需要双向(bidi)显示的功能,这种功能只有在图像用户界面(GUI)工具包和专用字符串显示库中才能找到。
例如,GNOME 需要 GTK 工具包和 Pango(一个文本显示库)来实现对 i18n 的完整支持(然而,Pango 在解决自己用途不够广泛方面有一些限制。请参看侧栏 pango 的问题)。其他 GUI 工具包提供了对 i18n 的支持,但却并不总是能兼容这些标准。当然,Linux 上的图像应用程式也需要 X Window System 的基本显示库 Xlib,他提供了两种绘图(形状和线条)和字符显示原语。不幸的是,Xlib 只能显示西欧语言。
|
一个库显示任何语言
要让应用程式在全球都能够使用 —— 而不会在西方国家和世界上其他很多语言之间产生不公平的现象 —— 我们必须要能够 输入、存储、提取并 显示 任何语言,而不管这究竟会多么复杂。正如上面介绍的相同,有一些广为认可的标准为多字节存储和可移植性提供了一些便利;然而,现在还没有为输入和显示定制标准。更加糟糕的是,即使是最好的多语言文本编辑器也会被迫混合使用简单的国际化库和私有 GUI 工具包。添加一种语言可能会需要另外一种(很可能是新的)定制库。
Multilingualization Library 或 m17n 库会尽力为类 UNIX 平台上多种语言书写的文本的输入、处理和显示提供一种单一的解决方案。另外,m17n 的目标是充分利用现有且大家都能够很好地理解的典型 UNIX 应用程式框架,而不是利用软件研发人员的其他模型。
最后,m17n 会努力使国际化的内容更加丰富,而不但仅是简单地从英语移植到另外一种语言上。使用 m17n,同一个二进制文档能够在一个系统上显示法语,在另外一个系统上显示蒙古语,甚至在同一个屏幕上就能够显示多种语言的文本。更好的是,m17n 能够(令人信服地)实现诸如文本数据库之类的功能,这使他能够存储并处理大量的国际化内容。
m17n 库是在日本 Tsukuba 的 National Institute for Advanced Science and Technology 工作的 4 个日本程式员编写的。很多年以来,日本都一直走在了国际化的前端,部分原因是日语学者一直在试图为人文学科探索一种百科全书式的方法 —— 尤其对世界上各种语言更为关注(有关历史上的一些内容,请参看侧栏 亚洲语言的起源。)
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!



