Linux 的中文化问题简介

Stella981
• 阅读 467

Linux 的中文化问题简介

--------------------------------------------------------------------------------

兄弟连教育 分享

www.itxdl.cn

Linux 的中文化问题简介

、 I18N 与 locale:  

要将 Linux 中文化,朝着标准走才是长远之计。各位如果有见过近代商业版的 UNIX 就会晓得,它们「中文化」之彻底,令人惊叹,诸如中文选单、中文讯息 .... 您能想像得到,或说只能在 Win95/98/NT OS/2 .... 等上头才见得到的 中文环境,它们都有。然而,它们的中文并不是像目前 Linux 上常见到的那样,由一堆程式七拼八凑出来的,它们全部都是遵循一个标准: I18N 。  

I18N 是 InternationalizatioN (国际化) 的缩写,第一个字 I 与最後一个字 N 之间有 18 的字母,故名。 I18N 并不是只有表面上将 X Window 「国际化」而已,它是基在最底层的 libc 上。 libc 必须要有 locale 的支援,才能向 I18N 起步。  

什麽是 locale? 简单说就是一组「地区语言」的资讯。它包括了 (详见 man setlocale):  

LC_CTYPE: 字元定义  

LC_MESSAGES: 讯息显示  

LC_TIME: 时间显示格式  

LC_NUMERIC: 数字显示格式  

LC_MONETARY: 货币显示格式  

LC_COLLATE: 字母顺序与字串比较  

其中,与一般使用者最有关的,是 LC_CTYPE 与 LC_MESSAGES 。 LC_CTYPE 直接关到某些字元或内码在目前的 locale 下是否可印? 要如何转换? 对应到那一个字? .... 等等。 LC_MESSAGES 则关到软体的讯息输出是什麽样的语文。真正完整的 locale 支援,是当我们在 shell prompt 下,直接设好环境变数,则我们马上就能切换到那个语文了。例如:  

bash: export LC_CTYPE=zh_TW.Big5  

有了 locale 的「协定」,使得任何地区的语文,只要在加入适当的 locale data 之後, libc 就能正确地处理它了,而我们的「中文」当然也不例外。由於前人与 CLE group 的努力,目前我们已有自己的 locale data 了。有安装 CLE 的朋友可以到 /usr/share/locale 下看看, zh_TW.Big5 就是我们的 locale data, 虽然还不够完整,但已能 work。  

目前 Linux 对於 locale 的支援如何? 可以大概地说,西方语系差不多没问题了,但东方语系还有不少问题。如果您的 Linux 系统是用 libc5 (例如 Slackware) 的话,那差不多可以说支援得相当差,几乎只能靠「七拼八凑」的方法来有限度地使用中文。如果是用 libc6 (glibc2) 的话,那就有相当的 locale 支援了。  

然而,目前大部分使用 glibc2 的系统都是 glibc-2.0.7, 这一版对东方语系的支援还不够好,特别是 LC_CTYPE ,它无法辨认、转换我们的 Big5 码,必须要等到 glibc-2.1 以後,才能完全解决这些问题。但这并不是说使用 glibc-2.0.7&

点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
2年前
Java安全通信:HTTPS与SSL
1\.HTTPS概念       1)简介          HTTPS(全称:HypertextTransferProtocoloverSecureSocketLayer),是以安全为目标的HTTP(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fbaike.b
Stella981 Stella981
2年前
Linux菜鸟到老鸟的那些建议
相信很多同学对Linux(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fwww.linuxprobe.com%2Fchapter00.html)的认识并不多,平常接触的也不多,对Linux的开发运维等也是一无所知。如今,如果要做一名优秀的程序猿,掌握Linux知识已经是一门必备技能了
Wesley13 Wesley13
2年前
MySQL下mysql.sock丢失问题的解决[ubuntu, linux, mysqld.sock]
MySQL下mysql.sock丢失问题的解决\ubuntu,linux,mysqld.sock\参考文章:(1)MySQL下mysql.sock丢失问题的解决\ubuntu,linux,mysqld.sock\(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F
Wesley13 Wesley13
2年前
PHP教程
PHP教程php读取输出其他文件方法人们往往想到出现一些关于访问很缓慢,有白页现象,要是测试环境你也就重启一下PHP的phpfpm进程发现又好了,隔一段时间又出类似的问题,本期我们邀请到了兄弟连PHP教育www.lampbrother.net(https://www.oschina.net/action/GoToLink?urlhttp%3A
Wesley13 Wesley13
2年前
4. Nginx模块
Nginx官方模块1.ngx\_http\_stub\_status\_modulehttp://nginx.org/en/docs/http/ngx\_http\_stub\_status\_module.html。(https://www.oschina.net/action/GoToLink?urlhttp%3A%2
Wesley13 Wesley13
2年前
P2P技术揭秘.P2P网络技术原理与典型系统开发
Modular.Java(2009.06)\.Craig.Walls.文字版.pdf:http://www.t00y.com/file/59501950(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.t00y.com%2Ffile%2F59501950)\More.E
Stella981 Stella981
2年前
Hexo+gitment
Gitment是一个基于GitHub问题的评论系统,可以在没有任何服务器端实现的前端使用。演示页面(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fimsun.github.io%2Fgitment%2F)中文简介(https://www.oschina.net/action
Stella981 Stella981
2年前
Jenkins+Ansible+Gitlab自动化部署三剑客
JenkinsAnsibleGitlab自动化部署三剑客小中大showerlee2016031113:00Ansible(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.
Stella981 Stella981
2年前
Golang注册Eureka的工具包goeureka发布
1.简介提供Go微服务客户端注册到Eureka中心。点击:github地址(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fgithub.com%2FSimonWang00%2Fgoeureka),欢迎各位多多star!(已通过测试验证,用于正式生产部署)2.原理
Stella981 Stella981
2年前
Cobbler
1\.cobbler简介cobbler官网:http://cobbler.github.io/(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fcobbler.github.io%2F)Cobbler是一个Linux服务器安装的服务,可以通过网络启动