浅析 Linux 的国际化与本地化机制

来源:互联网 发布:无损音乐鉴别软件 编辑:程序博客网 时间:2024/04/28 00:16

不同的国家和地区因文化的差异,在日期、时间以及货币符号等表示方式上都不完全相同,最为明显的就是语言。有时在编写软件给用户使用时,开发者、维护者以及最终用户可能分别来自不同的区域,而要求他们均使用同一种语言显然是不明知的,因此当一个程序或者软件编写给全世界人使用时,通常分为两个部分:国际化 (internationalization,即缩写为 i18n,这是由于在这个单词的头尾之间包含了 18 个字母 ) 和本地化(localization,缩写为 l10n)。

NLS

NLS 即是 Native Language Support。Linux 为解决各文件系统文件名多语言的问题而引入了对 NLS 的支持,我们可在内核编译配置中找到相关选项。

国际化,指的是一个程序或软件可给特定的人群使用而无须修改或重新编译源代码。在 ISO C 中,国际化的工作依赖于 locales。程序开发者可使用多样的方式来国际化他们的程序,但是 GNU gettext 已成为了其中的一种标准。

本地化,指的是一个程序或软件在支持国际化的基础上,给定程序特定区域的语言信息使其在信息的输入输出等处理上适应特定区域人群的使用。这里允许程序所使用的一些语言环境变量在程序执行时动态配置。

简单的说,国际化是开发者的任务,是一个一般化的过程,而本地化则是翻译者所做的事情,是一个具体的过程。国际化的运作为本地化工作提供了可能。对于国际化和本地化,有时我们也称为 NLS。Glibc (GNU C library) 作为 Linux 的 C 标准库为 Linux处理国际化与本地化提供了基础,如图 1 所示 Linux 上的程序处理依赖于 glibc。


图 1. glibc 在 linux 上的基础作用
图 1. glibc 在 linux 上的基础作用 



使用和设定系统 locale

对用户而言,用来控制语言或区域环境生效的功能就叫做 locale。locale 是 glibc 的一个重要组成部分,也是 Linux国际化和本地化工作的一个重要基础。locale 通过设置一系列的环境变量来满足用户对国际化和本地化的需求。通过 locale命令,我们不仅可查看到语言环境的当前设置,还可查看当前 locale 可用的名称和字符集。

原创粉丝点击