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

不同的国家和地区因文化的差异,在日期、时间以及货币符号等表示方式上都不完全相同,最为明显的就是语言。有时在编写软件给用户使用时,开发者、维 护者以及最终用户可能分别来自不同的区域,而要求他们均使用同一种语言显然是不明知的,因此当一个程序或者软件编写给全世界人使用时,通常分为两个部分: 国际化 (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 可用的名称和字符集。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值