日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

Linux 的中文化問(wèn)題簡(jiǎn)介

作者按
底下這篇文章是我最近寫程式的一點(diǎn)點(diǎn)心得,除了前段部討論了;Linux;I18N;環(huán)境外;(已在;Linux;連線版貼出),後半部還加了一些有關(guān);I18N;程式寫作的簡(jiǎn)介 。我想這篇文章就發(fā)表在;CLDP;上,希望;CLDP;可以收錄 。更希望這篇文章對(duì)有興趣的朋友有幫助,讓大家能早日進(jìn)入;I18N;的世界;:-));

由於我所知很有限,所以文章中可能有很多錯(cuò)誤,而關(guān)於;Xi18n;的部分,我也有很多因?yàn)闆](méi)有去研究,故略過(guò)不提了 。因此,希望各位高手能多多給我批評(píng)與建議,或幫忙我將不足之處補(bǔ)齊,讓這篇文章更完美 。;

在此先謝謝各位 。;

謝東翰;(Tung-Han;Hsieh);


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

Linux;的中文化問(wèn)題簡(jiǎn)介
一、前言:;
最近這個(gè)話題大家吵得有點(diǎn)厲害,大家都希望;Linux;能在中文方面有所進(jìn)步,各家有各家的說(shuō)法,莫衷一是 。由於我最近常與;CLE;的;group;有聯(lián),同時(shí)也正在寫一些與中文相關(guān)的程式,因此我大略說(shuō)一下「我們正在做什麼」,讓大家參考 。;

我希望大家能將這篇文章當(dāng)做技術(shù)性文章來(lái)讀,不要再有情緒化的批評(píng),必境我們要的是;solution,;情緒化的批評(píng)對(duì)我們實(shí)在沒(méi)有幫助 。除此之外,我的觀點(diǎn)可能有錯(cuò),也可能過(guò)份樂(lè)觀,也歡迎大家能就技術(shù)方面給予我指教 。;

二、;I18N;與;locale:;

要將;Linux;中文化,朝著標(biāo)準(zhǔn)走才是長(zhǎng)遠(yuǎn)之計(jì) 。各位如果有見(jiàn)過(guò)近代商業(yè)版的;UNIX;就會(huì)曉得,它們「中文化」之徹底,令人驚嘆,諸如中文選單、中文訊息;....;您能想像得到,或說(shuō)只能在;Win95/98/NT;OS/2;....;等上頭才見(jiàn)得到的;中文環(huán)境,它們都有 。然而,它們的中文并不是像目前;Linux;上常見(jiàn)到的那樣,由一堆程式七拼八湊出來(lái)的,它們?nèi)慷际亲裱粋€(gè)標(biāo)準(zhǔn):;I18N; 。;

I18N;是;InternationalizatioN;(國(guó)際化);的縮寫,第一個(gè)字;I;與最後一個(gè)字;N;之間有;18;的字母,故名 。;I18N;并不是只有表面上將;X;Window;「國(guó)際化」而已,它是基在最底層的;libc;上 。;libc;必須要有;locale;的支援,才能向;I18N;起步 。;

什麼是;locale?;簡(jiǎn)單說(shuō)就是一組「地區(qū)語(yǔ)言」的資訊 。它包括了;(詳見(jiàn);man;setlocale):;

 ;

LC_CTYPE:;字元定義;
LC_MESSAGES:;訊息顯示;
LC_TIME:;時(shí)間顯示格式;
LC_NUMERIC:;數(shù)字顯示格式;
LC_MONETARY:;貨幣顯示格式;
LC_COLLATE:;字母順序與字串比較;
其中,與一般使用者最有關(guān)的,是;LC_CTYPE;與;LC_MESSAGES; 。;LC_CTYPE;直接關(guān)到某些字元或內(nèi)碼在目前的;locale;下是否可印?;要如何轉(zhuǎn)換?;對(duì)應(yīng)到那一個(gè)字?;....;等等 。;LC_MESSAGES;則關(guān)到軟體的訊息輸出是什麼樣的語(yǔ)文 。真正完整的;locale;支援,是當(dāng)我們?cè)?shell;prompt;下,直接設(shè)好環(huán)境變數(shù),則我們馬上就能切換到那個(gè)語(yǔ)文了 。例如:;

bash:;export;LC_CTYPE=zh_TW.Big5;

有了;locale;的「協(xié)定」,使得任何地區(qū)的語(yǔ)文,只要在加入適當(dāng)?shù)?locale;data;之後,;libc;就能正確地處理它了,而我們的「中文」當(dāng)然也不例外 。由於前人與;CLE;group;的努力,目前我們已有自己的;locale;data;了 。有安裝;CLE;的朋友可以到;/usr/share/locale;下看看,;zh_TW.Big5;就是我們的;locale;data,;雖然還不夠完整,但已能;work 。;

目前;Linux;對(duì)於;locale;的支援如何?;可以大概地說(shuō),西方語(yǔ)系差不多沒(méi)問(wèn)題了,但東方語(yǔ)系還有不少問(wèn)題 。如果您的;Linux;系統(tǒng)是用;libc5;(例如;Slackware);的話,那差不多可以說(shuō)支援得相當(dāng)差,幾乎只能靠「七拼八湊」的方法來(lái)有限度地使用中文 。如果是用;libc6;(glibc2);的話,那就有相當(dāng)?shù)?locale;支援了 。;

然而,目前大部分使用;glibc2;的系統(tǒng)都是;glibc-2.0.7,;這一版對(duì)東方語(yǔ)系的支援還不夠好,特別是;LC_CTYPE;,它無(wú)法辨認(rèn)、轉(zhuǎn)換我們的;Big5;碼,必須要等到;glibc-2.1;以後,才能完全解決這些問(wèn)題 。但這并不是說(shuō)使用;glibc-2.0.7;的廣大使用者都沒(méi)希望了,事實(shí)上有一個(gè);libwcsmbs;的套件,它可以將;glibc;中有問(wèn)題的部分取代掉,讓我們的;LC_CTYPE;部分可以「幾乎;90%;正確」地工作 。而這個(gè)套件就是目前;CLE;的標(biāo)準(zhǔn)之一,也是很重要的一個(gè)部分,雖然大家可能感受不到它的存在 。;

推薦閱讀