频 道 直 达 - 新闻 - 读书 - 培训 - 教程 - 前沿 - 组网 - 系统应用 - 安全 - 编程 - 存储 - 操作系统 - 数据库 - 服务器 - 专题 - 产品 - 案例库 - 技术圈 - 博客 - BBS
51CTO.COM_中国领先的IT技术网站
找资料:

Linux中文化简述

作者: 出处:CU博客  (  ) 砖  (  ) 好  评论 ( ) 条  进入论坛
更新时间:2005-12-15 16:03
关 键 词:Linux
阅读提示:在 UNIX 的世界中,形成了「程序国际化」与「数据本土化」的标准,程序代码只要写过一遍,就可以适用于所有的语文与编码系统,只要系统有支持该语文与编码系统所需的「本土数据」即可。即采取的概念就是「程序」与「数据」分离并分开维护的方式。

在 UNIX 的世界中,形成了「程序国际化」与「数据本土化」的标准,程序代码只要写过一遍,就可以适用于所有的语文与编码系统,只要系统有支持该语文与编码系统所需的「本土数据」即可。即采取的概念就是「程序」与「数据」分离并分开维护的方式。
「程序国际化」简称 I18N,其意为 InternationalizatioN 一字中头尾字母 "I" 与"N" 中间夹 18 个英文字母,故名。它是在系统底层的函式库 (即 libc 函式库) 中实作一组标准的函式接口,可以让程序存取该地区语系的种种信息。有了这些信息,程序本身不仅可以不需要修改,就足以处理各国的语文,同时程序本身甚至连各地区语文的各项细节 (如编码方式 .... 等) 都不需要知道,因为这些全部都是由系统函式库提供的。
「资料本土化」简称 L10N,其意为 LocalizatioN 一字中头尾字母 "L" 与 "N" 中间夹 10 个英文字母,故名。它是将地区语文的各项细节数据分门别类,安装在系统底层的数据库中,以便让系统函式库存取,以提供给上头的应用程序使用。这些用来描述各地区语文的数据,我们称之为「地区环境数据库 (locale)」,或简称「地区环境」它们包括以下的类别 (categories):
1. LC_COLLATE: 该地区文字排序规则,以及正规化表示式 (regular expression)的比对依据。
2. LC_CTYPE: 该地区所使用的编码系统、字集、与文字分类、转换等信息。
3. LC_MESSAGES: 各应用程序区域化的讯息显示。
4. LC_MONETARY: 该地区所通行的货币格式。
5. LC_NUMERIC: 该地区所通行的数字表示格式。
6. LC_TIME: 该地区所通行的时间、日期表示格式。
· 对于同一个地区语文而言,除了 LC_MESSAGES 之外,其它所有的类别都是固定的,故这些类别的数据就只需准备一份即可,它们是由系统底层函式库直接提供,可以让所有的应用程序分享。至于 LC_MESSAGES 讯息显示的部分,由于各应用程序的讯息都不同,故这部分的数据是由应用程序自身提供,而不像其它类别一样由系统函式库提供。
·在这些类别中,决定一个程序是否在该地区已「本土」化的最重要因素,一是 LC_CTYPE,二是 LC_MESSAGES。前者赋与程序处理该地区文字的能力,后者赋与程序用该地区的语文来显示的能力。
· 在实际中,将程序所有的讯息集中放在一个文件档中,而该文件文件的讯息开始时只会用程序原作者惯用的语言来表示。如果希望该程序也能显示其它语文的讯息时,我们只需要去做翻译的工作即可,而不必真的去修改程序代码本身。因此,讯息翻译与程序维护可以分头进行,翻译的工作不需要由程序原作者、或有经验的程式设计师来做,只需他熟悉该语文,并对该程序有一定的熟悉度即可。故基本上,任何人都可以参与翻译的工作。当程序编译安装完成后,已翻译成各国语文的讯息文件也会一并安装入系统的区域化数据库中。当程序启动,需要做讯息显示时,它会呼叫系统提供的函式介面,依目前的语系设定来正确抓取该语文的讯息并显示出来。万一目前的语系设定找不到相对应的讯息翻译文件时,则程序会自动以其原始的语系来显示。
地区环境数据库名称和语系设定
各地区所属的地区环境数据库名称格式如下:
_[.]
其中 [.] 有时候会省略。以我们台湾地区所使用的为例:
zh_CN.UTF-8其意即为「中文语系」(zh)「中国」(CN)「使用UTF-8编码系统」。如果将后头的 [.] 省略掉,就是这个样子
zh_CN

·如果我们不特别做语系的设定,则程序在启动时,会以系统预设的语系来运作,一般而言其地区环境数据库名就是 "C" 或 "POSIX",也就是原始 C 语言所采用的编码系统 (ASCII) 与英文讯息等等。如果希望改变程序运作的语系,则我们必须在程序启动前先做好环境语系的设定,也就是设好各类别的环境变量。例如:
LC_CTYPE=zh_CN.UTF-8; export LC_CTYPE
LC_MESSAGES=zh_CN.UTF-8; export LC_MESSAGES
·假如希望程序可以处理 EUC-TW 的文字,但仍以 Big5 中文显示讯息时,就这样设定:
LC_CTYPE=zh_TW.euctw; export LC_CTYPE
LC_MESSAGES=zh_TW.Big5; export LC_MESSAGES

· 在多数情况下,通常会希望一口气将所有的类别设定成相同的语系,也就是让我们的整体环境全部处于同一个语系下。当然我们可以用上述的方式一个个类别分别设定,但除此之外系统还提供了另外两个环境变量,以方便我们的作业。一是 LANG,另一个是 LC_ALL。例如我们这样设:
LC_ALL=zh_CN.UTF-8; export LC_ALL
其效果就完全等价于将所有的类别全部设定了。而 LANG 的用法也是一样,所达到的效果也类似,但意义稍有不同,这里要留意优先级的差别。一般系统对这些环境变数的优先级是:LC_ALL > LC_* > LANG
·也就是说,任何一个 LC_ 类的变量设定后,会使 LANG 的设定的相对应类别失效。如果我们完全不设任何的 LC_ 类的环境变量,只单单这么设
LANG=zh_CN.UTF-8; export LANG
则所有的类别都会以 LANG 的设定来运作,除非我们特别去设了某个 LC_ 的环境变数,如此这个类别就会以新的设定来运作 (但其它的类别不变)。相似的道理,如果我们设了 LC_ALL 的环境变量,则所有的类别设定,包括 LANG 的设定全部会失效,而改以 LC_ALL 的设定来运作。


发表
查看
我也说两句

匿名发表

(如果看不清请点击图片进行更换)


中 国 领 先 的 IT 技 术 网 站 ·
技 术 成 就 梦 想
·Windows XP远程桌面连接图解(.. (查看30702次)
·Windows Vista 初步 (查看20844次)
·Solaris基础知识入门 (查看19036次)
·Linux的安装 (查看16857次)
·Windows操作系统安装 (查看15831次)
订阅技术快讯
电子杂志下载
名称:网络安全精品应用黄皮书
简介:《2007精品网络安全黄皮书》包括了9个大类24个小类, 800余篇文章,内容包含了熊猫烧香病毒、DDOS攻击、ARP病等热点问题的介绍及解决方案。从病毒查杀、防范、系统、数据等各方面的安全设置到黑客技术的了解、防范,涉及到了安全应用的全部领域, 由浅至深内容全面。
名称:Vista精品应用黄皮书
简介:《Vista精品应用黄皮书》囊括了Vista的各方面内容。此次的精简版,是将里面的内容做了提取,便于用户下载和使用。内容包含了各种Vista的安装与实施、技巧与解析以及各种Vista相关学习文档和相关软件的安全下载。该电子书是了解和应用Vista人员必备的工具手册,并且也是第一本
名称:2006中国IT论坛精品集合
简介:本书由“51CTO论坛推广联盟”制作完成。书中所有内容均来自各联盟成员的论坛(网站)。制作本书的目的是为了集中大家的优势资源,将更多更精彩的内容带给广大技术爱好者。本书是联盟成立以来制作的第一本书。
关键字阅读
频道精选
主编信箱 热线:010-66476606 告诉我们您想看的:专题 文章
关于我们 | 诚聘英才 | 联系我们 | 网站大事 | 意见反馈 | 网站地图
Copyright©2005-2007 51CTO.COM 版权所有