Linux 的中文化问题简介

丶米粒巜

丶米粒巜

2016-01-29 19:25

Linux 的中文化问题简介,Linux 的中文化问题简介
  作者按
底下这篇文章是我最近写程式的一点点心得,除了前段部讨论了 Linux I18N 环境外 (已在 Linux 连线版贴出),後半部还加了一些有关 I18N 程式写作的简介。我想这篇文章就发表在 CLDP 上,希望 CLDP 可以收录。更希望这篇文章对有兴趣的朋友有帮助,让大家能早日进入 I18N 的世界 :-)) 

由於我所知很有限,所以文章中可能有很多错误,而关於 Xi18n 的部分,我也有很多因为没有去研究,故略过不提了。因此,希望各位高手能多多给我批评与建议,或帮忙我将不足之处补齐,让这篇文章更完美。 

在此先谢谢各位。 

谢东翰 (Tung-Han Hsieh) 
 

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

Linux 的中文化问题简介
一、前言: 
最近这个话题大家吵得有点厉害,大家都希望 Linux 能在中文方面有所进步,各家有各家的说法,莫衷一是。由於我最近常与 CLE 的 group 有联,同时也正在写一些与中文相关的程式,因此我大略说一下「我们正在做什麽」,让大家参考。 

我希望大家能将这篇文章当做技术性文章来读,不要再有情绪化的批评,必境我们要的是 solution, 情绪化的批评对我们实在没有帮助。除此之外,我的观点可能有错,也可能过份乐观,也欢迎大家能就技术方面给予我指教。 

二、 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&
展开更多 50%)
分享

猜你喜欢

Linux 的中文化问题简介

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
Linux 的中文化问题简介

中文化问题(输入法)

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
中文化问题(输入法)

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

怎样把你的 MySQL 完全中文化

编程语言 网络编程
怎样把你的 MySQL 完全中文化

完全中文化!《牧场物语 蜜糖村》攻略之昆虫篇

电脑网络
完全中文化!《牧场物语 蜜糖村》攻略之昆虫篇

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

完全中文化!《牧场物语 蜜糖村》攻略之店铺篇

电脑网络
完全中文化!《牧场物语 蜜糖村》攻略之店铺篇

完全中文化!《牧场物语 蜜糖村》攻略之人物图鉴

电脑网络
完全中文化!《牧场物语 蜜糖村》攻略之人物图鉴

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Linux技巧:当终端出现混乱时 如何让它恢复正常

Linux技巧:当终端出现混乱时 如何让它恢复正常

在Word中快速实现表头重复

在Word中快速实现表头重复
下拉加载更多内容 ↓