⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 00000002.htm

📁 一份很好的linux入门资料
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<HTML><HEAD>  <TITLE>BBS水木清华站∶精华区</TITLE></HEAD><BODY><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER>发信人:&nbsp;yanglc&nbsp;(魂归燕园),&nbsp;信区:&nbsp;Linux&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>标&nbsp;&nbsp;题:&nbsp;三&nbsp;X&nbsp;窗口系统的国际化&nbsp;<BR>发信站:&nbsp;BBS&nbsp;水木清华站&nbsp;(Sun&nbsp;May&nbsp;14&nbsp;22:30:47&nbsp;2000)&nbsp;<BR>&nbsp;<BR>www.linuxforum.net&nbsp;<BR>1和2前面有。&nbsp;<BR>&nbsp;<BR>三&nbsp;X&nbsp;窗口系统的国际化&nbsp;<BR>&nbsp;<BR>在&nbsp;X&nbsp;窗口系统上的国际化,&nbsp;特别是中文化,&nbsp;主要体现在显示,输入和打印三个方面.&nbsp;<BR>&nbsp;<BR>1.&nbsp;显示的国际化&nbsp;<BR>&nbsp;<BR>1.&nbsp;字符集和编码&nbsp;<BR>&nbsp;<BR>在Linux上经常使用的字符集是ISO&nbsp;8859系列的字符集.&nbsp;它包含了10个&nbsp;多语&nbsp;<BR>言的单字节编码字符集.&nbsp;它们分别是,&nbsp;<BR>字符集&nbsp;涵盖语言&nbsp;<BR>拉丁一字符集,&nbsp;包含绝大多数的欧洲语言,&nbsp;<BR>例如French(fr),&nbsp;Spanish&nbsp;(es),&nbsp;Catalan&nbsp;<BR>(ca),&nbsp;Basque&nbsp;(eu),&nbsp;Portuguese&nbsp;(pt),&nbsp;<BR>Italian&nbsp;(it),&nbsp;Albanian&nbsp;(sq),&nbsp;<BR>Rhaeto-Romanic&nbsp;(rm),&nbsp;Dutch&nbsp;(nl),&nbsp;<BR>ISO&nbsp;8859-1(Latin1)&nbsp;German&nbsp;(de),&nbsp;Danish&nbsp;(da),&nbsp;Swedish&nbsp;<BR>(sv),&nbsp;Norwegian&nbsp;(no),&nbsp;Finnish&nbsp;(fi),&nbsp;<BR>Faroese&nbsp;(fo),&nbsp;Icelandic&nbsp;(is),&nbsp;Irish&nbsp;<BR>(ga),&nbsp;Scottish&nbsp;(gd),&nbsp;English&nbsp;(en),&nbsp;<BR>Afrikaans&nbsp;(af)&nbsp;和&nbsp;Swahili&nbsp;(sw).&nbsp;影响了&nbsp;<BR>美洲,&nbsp;澳洲和非洲.&nbsp;<BR>拉丁二字符集,&nbsp;包含了中欧和东欧的语&nbsp;<BR>ISO&nbsp;8859-2(Latin2)&nbsp;言:Czech&nbsp;(cs),&nbsp;Hungarian&nbsp;(hu),&nbsp;Polish&nbsp;<BR>(pl),&nbsp;Romanian&nbsp;(ro),&nbsp;Croatian&nbsp;(hr),&nbsp;<BR>Slovak&nbsp;(sk),&nbsp;Slovenian&nbsp;(sl),&nbsp;Sorbian.&nbsp;<BR>&nbsp;<BR>ISO&nbsp;8859-3(Latin3)&nbsp;拉丁三字符集,&nbsp;包括:&nbsp;Esperanto&nbsp;(eo)&nbsp;and&nbsp;<BR>Maltese&nbsp;(mt)&nbsp;<BR>&nbsp;<BR>拉丁四字符集,&nbsp;包括:&nbsp;Estonian&nbsp;(et),&nbsp;巴&nbsp;<BR>ISO&nbsp;8859-4(Latin4)&nbsp;尔地克&nbsp;Latvian&nbsp;(lv)&nbsp;和&nbsp;Lithuanian&nbsp;<BR>(lt),&nbsp;Greenlandic&nbsp;(kl)&nbsp;,&nbsp;Lappish.&nbsp;<BR>Bulgarian&nbsp;(bg),&nbsp;Byelorussian&nbsp;(be),&nbsp;<BR>ISO&nbsp;8859-5(西里尔语)&nbsp;Macedonian&nbsp;(mk),&nbsp;Russian&nbsp;(ru),&nbsp;Serbian&nbsp;<BR>(sr)&nbsp;<BR>ISO&nbsp;8859-6(阿拉伯语)&nbsp;阿拉伯语(ar)&nbsp;<BR>ISO&nbsp;8859-7(希腊语)&nbsp;希腊语(el)&nbsp;<BR>ISO&nbsp;8859-8(希伯来语)&nbsp;Hebrew&nbsp;(iw)&nbsp;和Yiddish&nbsp;(ji)&nbsp;<BR>&nbsp;<BR>ISO&nbsp;8859-9(Latin5)&nbsp;重排了Latin1,&nbsp;用土耳其语的几个字母做了&nbsp;<BR>替换&nbsp;<BR>&nbsp;<BR>ISO&nbsp;8859-9(Latin6)&nbsp;重排了Latin4,&nbsp;去掉了某些符号,&nbsp;增加了&nbsp;<BR>Inuit等&nbsp;<BR>ISO&nbsp;8859-11(泰国语)&nbsp;泰国语(th)&nbsp;<BR>&nbsp;<BR>ISO&nbsp;8859-12&nbsp;Celtic&nbsp;<BR>&nbsp;<BR>ISO&nbsp;8859-13(Latin7)&nbsp;Baltic&nbsp;Rim&nbsp;和&nbsp;Lativian(lv)&nbsp;<BR>ISO&nbsp;8859-14(Latin8)&nbsp;Gaelic&nbsp;和&nbsp;Welsh&nbsp;(cy)&nbsp;<BR>ISO&nbsp;8859-15(Latin9)&nbsp;Latin1的变种,&nbsp;修改了某些字母&nbsp;<BR>&nbsp;<BR>双字节字符集主要包含中文,日文和韩文.&nbsp;它由前导字节(Lead&nbsp;Byte)&nbsp;和尾&nbsp;<BR>部字节(Trail&nbsp;Byte)构成,&nbsp;由于一个字符采用了两个字节,&nbsp;在软件的&nbsp;国际&nbsp;<BR>化方面又增加了一些麻烦,&nbsp;比如在显示上,&nbsp;光标的位置不能位于汉字&nbsp;之间,&nbsp;<BR>删除和移动时必须是整字操作等,&nbsp;在输入上,&nbsp;一般需要预编辑服务器&nbsp;才能&nbsp;<BR>输入汉字.&nbsp;下表列出了中日韩语言编码的有关信息:&nbsp;<BR>&nbsp;<BR>语&nbsp;前导字节范&nbsp;<BR>言&nbsp;字符集&nbsp;代码页&nbsp;围&nbsp;尾部字节范围&nbsp;<BR>简&nbsp;GB2312-1980&nbsp;CP936&nbsp;0xA1-0xF7&nbsp;0xA1-0xFE&nbsp;<BR>体&nbsp;<BR>中&nbsp;<BR>文&nbsp;GBK&nbsp;无&nbsp;0x81-0xFE&nbsp;0x40-0x7E,&nbsp;0x80-0xFE&nbsp;<BR>中&nbsp;<BR>文&nbsp;<BR>繁&nbsp;BIG-5&nbsp;CP950&nbsp;0x81-0xFE&nbsp;0x40-0x7E,&nbsp;0xA1-0xFE&nbsp;<BR>体&nbsp;<BR>日&nbsp;0x81-0x9F,&nbsp;<BR>文&nbsp;Shift-JIS&nbsp;CP932&nbsp;0xE0-0xFC&nbsp;0x40-0xFC(0x7F除外)&nbsp;<BR>KSC-5601-1987&nbsp;CP949&nbsp;0x81-0xFE&nbsp;0x41-0x5A,0x61-0x7A,0x81-0xFE&nbsp;<BR>0x84-0xD3&nbsp;<BR>韩&nbsp;0xD8&nbsp;0x41-0x7E&nbsp;<BR>文&nbsp;KSC-5601-1992&nbsp;CP1361&nbsp;0xD90-0xDE&nbsp;0x81-0xFE&nbsp;<BR>0xE0-0xF9&nbsp;0x31-0x7E&nbsp;<BR>0x41,0xFE&nbsp;<BR>&nbsp;<BR>最近,&nbsp;信息产业部和国家质量技术监督局联合发布了两项新的中文信息&nbsp;处&nbsp;<BR>理基础性国家标准,为解决偏、生汉字的输入提供了方案。其中GB18030-&nbsp;<BR>2000《信息技术和信息交换用汉字编码字符集、基本集的扩充》,为强制性&nbsp;<BR>国家标准.&nbsp;它收录了2.7万多个汉字,总编码空间超过150万个码位,为彻底&nbsp;<BR>解决邮政、户政、金融、&nbsp;地理信息系统等迫切需要的人名、地名用字问题&nbsp;<BR>提供了解决方案,也为汉字研究、古籍整理等领域提供了统一的信息平台基&nbsp;<BR>础。&nbsp;这项标准还同时收录了藏文、蒙文、维吾尔文等主要的少数民族文字.&nbsp;<BR>字符&nbsp;集编码范围是:&nbsp;<BR>&nbsp;<BR>字节数&nbsp;编码空间&nbsp;码位数目&nbsp;<BR>单字节&nbsp;0x00-0x80&nbsp;129&nbsp;<BR>&nbsp;<BR>双字节&nbsp;第一字节:0x81-0xFE&nbsp;23940&nbsp;<BR>第二字节:0x40-0x7E,0x80-0xFE&nbsp;<BR>&nbsp;<BR>四字节&nbsp;四字节范围分别是:&nbsp;1587600&nbsp;<BR>0x80-0xFE,0x30-0x39,0x81-0xFE,0x30-0x39&nbsp;<BR>&nbsp;<BR>香港特别行政区也对Big5编码提出了&quot;香港增补字符集&quot;,&nbsp;其目的,是&nbsp;收纳&nbsp;<BR>香港特区政府及市民在中文电子通讯中有需要使用的字符,来补充目前&nbsp;大&nbsp;<BR>五码和ISO10646编码标准内并未包含的字符,以作为一个通用的中文界面,&nbsp;<BR>方便大家能准确地以中文进行电子通讯。香港增补字符集有两套编码方案,&nbsp;<BR>一套适用於大五码系统,另一套适用於ISO10646平台。香港增补字符集的大&nbsp;<BR>五码版本,实际上是政府通用字库的增订版。ISO10646国际编码标准目前并&nbsp;<BR>未包含香港增补字符集内的所有字符。目前尚未收纳在ISO10646内的香港增&nbsp;<BR>补字符集字符,均已提交国际标准化组织管辖下的表意文字小组,以考虑是&nbsp;<BR>否纳入ISO10646日后的新增版本内.&nbsp;<BR>&nbsp;<BR>上述标准和草案应该是以后的中文Linux所应该遵循的.&nbsp;<BR>&nbsp;<BR>2.&nbsp;多字节字符(Multibyte)和宽字符(WideChar)的使用&nbsp;<BR>&nbsp;<BR>我们平时见到的以文本方式存在的字符都是多字节字符,&nbsp;它主要用于&nbsp;文件&nbsp;<BR>存储和网络上的以流(Stream)的方式传输.&nbsp;一个GB编码的汉字需要两个&nbsp;字&nbsp;<BR>节.&nbsp;多字节字符的缺点是在中文处理上不方便,&nbsp;比如汉字的删除和光标的&nbsp;<BR>移动都会有半汉字问题.&nbsp;为了文本处理的方便,&nbsp;在内部操作上通常是把汉字&nbsp;<BR>与英文的混和字符串先转换成等宽度的字符串,&nbsp;即宽字符,&nbsp;为软件的内部处&nbsp;<BR>理&nbsp;提供方便.&nbsp;<BR>&nbsp;<BR>glibc2.1.x中多字节字符串和宽字符串的转换有时有问题.&nbsp;在X下还可以&nbsp;使&nbsp;<BR>用另外一种方式完成转换,&nbsp;即使用XmbTextListToTextProperty()和&nbsp;<BR>XwcTextPropertyToTextList()&nbsp;联合完成转换.&nbsp;<BR>&nbsp;<BR>3.&nbsp;Unicode&nbsp;<BR>&nbsp;<BR>目前所使用的Unicode&nbsp;是一种16位字宽的字符编码,&nbsp;它由非赢利的计算机&nbsp;<BR>组织Unicode研讨会维护和改进.&nbsp;它起源于Xerox和Apple之间的合作研究.&nbsp;<BR>几&nbsp;个公司组成了一个非正式的论坛,&nbsp;接着IBM,&nbsp;Microsoft等公司迅速加入.&nbsp;<BR>Unicode研讨会在1990年发表了Unicode标准版本1,&nbsp;同时国际标准化组织完&nbsp;<BR>成&nbsp;了一种类似的编码----ISO&nbsp;10646.&nbsp;因为没有必要存在两套标准,&nbsp;所以&nbsp;<BR>Unicode&nbsp;研讨会和国际标准化组织在1991到1992合二为一.&nbsp;1994年,&nbsp;中国和&nbsp;<BR>日本开始对&nbsp;基于ISO10646上的国家标准进行工作.&nbsp;现在,&nbsp;Unicode&nbsp;开始用&nbsp;<BR>在许多产品中.&nbsp;<BR>&nbsp;<BR>Unicode包含了当今计算机领域中广泛使用的所由字符,&nbsp;如世界上大部分&nbsp;的&nbsp;<BR>书面语言,&nbsp;印刷字符,&nbsp;数字和技术符号,&nbsp;地理图形和标点符号.&nbsp;由于&nbsp;<BR>Unicode&nbsp;的一致性,&nbsp;它在大多数情况下都可能简化软件的国际化过程.&nbsp;它取&nbsp;<BR>消了处理&nbsp;多种代码页的必要,&nbsp;并且由于是16位编码,&nbsp;因此由双字节字符集&nbsp;<BR>所引起的额外&nbsp;处理也不必要了.&nbsp;<BR>&nbsp;<BR>但是,&nbsp;Unicode作为一种编码也有它的缺陷,&nbsp;比如编码的位置与排序无关,&nbsp;<BR>所以使软件支持Unicode仅仅是国际化的第一步,&nbsp;实际情况中还需要与语言&nbsp;<BR>相关&nbsp;的信息和规则.&nbsp;所以Unicode一般作为程序的内部处理编码,&nbsp;必须提供&nbsp;<BR>与其它&nbsp;编码的双向转换表.&nbsp;<BR>&nbsp;<BR>最后需要说明的是,&nbsp;虽然使用Unicode会使普通的英文文本大两倍,&nbsp;但是&nbsp;使&nbsp;<BR>用Unicode的整个系统却不会增加太大,&nbsp;因为系统存放的文件大部分是二进&nbsp;<BR>制&nbsp;文件格式,&nbsp;同时,&nbsp;使用针对Unicode的压缩方式,&nbsp;可以把文件压缩成和使&nbsp;<BR>用对应&nbsp;的8位正文一样大小.&nbsp;<BR>&nbsp;<BR>4.&nbsp;字体(Font)和字体集(FontSet)&nbsp;<BR>&nbsp;<BR>在X窗口系统下使用的字体都必须在X服务器中注册X逻辑字体描述(X&nbsp;<BR>Logical&nbsp;Font&nbsp;Description)名.&nbsp;它包括了字体的许多信息,&nbsp;例如以下为西&nbsp;<BR>文字体和中文&nbsp;字体的两个例子.&nbsp;<BR>&nbsp;<BR>1.&nbsp;-adobe-times-medium-r-normal--14-140-75-75-p-74-iso8859-1&nbsp;<BR>2.&nbsp;-tlc-song-medium-r-normal--24-240-75-75-c-240-gbk-0&nbsp;<BR>&nbsp;<BR>为了方便使用,&nbsp;用户还可以给每一个字体加一个或多个别名,&nbsp;别名文件&nbsp;<BR>fonts.alias&nbsp;放在字体目录下,&nbsp;可以手工编辑.&nbsp;当字体目录变更或别名变更&nbsp;<BR>后,&nbsp;必须使用命令&nbsp;&quot;xset&nbsp;fp&nbsp;rehash&quot;或重新启动X才起作用.&nbsp;<BR>&nbsp;<BR>X&nbsp;字体也可以通过字体服务器(Font&nbsp;Server)加载.&nbsp;这对于本地不放字体&nbsp;的&nbsp;<BR>系统或X终端特别有用.&nbsp;加载的协议可以是TCP或DECNET.&nbsp;<BR>&nbsp;<BR>X&nbsp;窗口系统的字体在X&nbsp;Server中之存在一份,&nbsp;当所由软件都不使用它时,&nbsp;字&nbsp;<BR>体的内存自动施放.&nbsp;<BR>&nbsp;<BR>字体中包含了制造商名,&nbsp;字体类型,&nbsp;权重,&nbsp;字体大小,&nbsp;字符集等信息.&nbsp;它们&nbsp;<BR>也&nbsp;可以缩写,&nbsp;省去的部分用星号代替,&nbsp;比如对上面的中文字体,&nbsp;可以缩写&nbsp;<BR>为:&nbsp;<BR>&nbsp;<BR>-*-song-*-24-*-gbk-0&nbsp;<BR>&nbsp;<BR>在实际应用中,&nbsp;字符串往往是中文和英文的混和字符串,&nbsp;所以必须使用两种&nbsp;<BR>字体来绘出该字符串,&nbsp;这种指定两种或两种以上的字体的描述就是字体集.&nbsp;<BR>字体&nbsp;集一般的格式是把多种字体用逗号隔开,&nbsp;比如,&nbsp;指定下列字体集:&nbsp;<BR>&nbsp;<BR>&quot;-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-iso8859-*,\&nbsp;<BR>-tlc-song-medium-r-normal--14-*-*-*-*-*-gbk-0&quot;&nbsp;<BR>&nbsp;<BR>令人遗憾的是,&nbsp;中文的GB编码和Big5编码有重叠区域,&nbsp;不能区分开来,&nbsp;所以&nbsp;<BR>字体集并不能同时指定GB和Big5的字体.&nbsp;<BR>&nbsp;<BR>字体集的具体载入受到Locale的影响.&nbsp;<BR>&nbsp;<BR>在许多已经国际化的软件和图形库中,&nbsp;一般通过资源文件让用户指定字体&nbsp;<BR>集,&nbsp;比如gtk的简体中文资源文件为/etc/gtk/gtkrc.zh_CN,&nbsp;qt-1.44(国际&nbsp;<BR>化的)的&nbsp;资源文件是&nbsp;~/.qti18nrc&nbsp;等等.&nbsp;<BR>&nbsp;<BR>2.&nbsp;信息的国际化&nbsp;<BR>&nbsp;<BR>信息(Message)国际化是软件国际化中比较重要的一环,&nbsp;如果使软件可以&nbsp;支持多&nbsp;<BR>种语言,&nbsp;在设计时就应当考虑到信息的国际化问题.&nbsp;现在的绝大多数&nbsp;软件使用&nbsp;<BR>GNU的gettext作为基本工具.&nbsp;信息国际化的基本步骤是:&nbsp;<BR>o&nbsp;在软件初始化时设置使用setlocale()设置Locale&nbsp;<BR>o&nbsp;使用gettext宏定义,&nbsp;使程序看上去比较方便:&nbsp;<BR>o&nbsp;指定信息的位置:&nbsp;<BR>o&nbsp;指定翻译信息:&nbsp;_(&quot;Some&nbsp;Strings&quot;);&nbsp;<BR>o&nbsp;在软件完成后,使用&nbsp;xgettext&nbsp;提取信息并翻译&nbsp;<BR>o&nbsp;使用msgfmt把信息文件转换为.mo文件,&nbsp;安装到locale目录下&nbsp;<BR>&nbsp;<BR>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -