| Linux 的中文化问题简介 |
|
作者:网络 文章来源:转载 点击数: 更新时间:2005-8-15 |
| [ 字体:缩小 正常 放大 | 双击自动滚屏 ] |
请选择合适的字体颜色:
|
|
manual" 书中建议的,在其备完整 locale 支援的 libc 环境下,它其实是等价 於
include , 但若在其他环境, Xlocale.h 会用 XLOCALE 机制来 取代原有
的机制。
上头的 XSetLocaleModifiers 会存环境变数 XMODIFIERS 中取得 X-modifier 的值并
加以设定之。 XMODIFIERS 的格式为:
export XMODIFIERS=@category=value
目前 category 只有 "im" 有用,如 "@im=xcin-cxims", 意指设定 xcin-cxims 作为
此 X Window 程式的 XIM server。
设定 fontset (详见 man XCreateFontSet):
以往 X Window 程式都是呼叫 XLoadQueryFont() 之类的函式来载入并使用字型。 但
在 Xi18n 的架构下,一个 locale 的 encoding 通常不能光用一种字型来表示。 例如
我们的 zh_TW.Big5, 半形字需用英文字型 (如 -*-iso8859-1),而全形字需 用中文字
型 (如 -twmoe-*-big5-0), 因此,我们不能用 XLoadQueryFont() 将这 些字型分别载
入,而要用 XCreateFontSet() 来载入所需的 fontset。
----------------------------------------------------------------------------
----
Display *display;
XFontSet fontset;
char *fontset_name, **missing_charset, *def_string;
int missing_charset_count;
fontset_name = "-*-iso8859-1,-twmoe-*-big5-0";
fontset = XCreateFontSet(display, fontset_name,
&missing_charset_list,
&missing_charset_count,
&def_string);
----------------------------------------------------------------------------
----
在这□我们可以将 fontset 看成一个「字型物件」,而不要把它看成 "-*-iso8859-1"
与 "-twmoe-*-big5-0" 这两种字型的组合。当我们要画任何字 串时,我们不用担心要
画的到底是全型字或半型字,使用 fontset 便能帮我们 处理一切。
画出字串 (详见 man XwcDrawImageString, man XmbDrawImageString, manXOpenOM)
平常我们要在视窗画字串时,都会用 XDrawImageString() 等函式,或者用
XDrawImageString16() 来画双位元的字串 (即全型字)。现在可以我们用
XwcDrawImageString (用来画 wide-char (wchar_t *) 字串) 或 XmbDrawImageString
(用来画 multi-byte (char *) 字串) 。不管您输入的字 串是全型或半型,或二者的
混合,使用者两个函式都能正确处理,同时会根据 您的 fontset 的设定来画字。
除此之外, X11R6 还有一个 Output Method 机制,用来做多国语系字串输出 (画字
串),我们可以在程式中呼叫 XOpenOM() 来开启一个 Output Method 。 但这部分我还
没有仔细研究,有兴趣的朋友可以参考本章开头所列的参考资料 以获得进一步资讯。
XIM (详见 man XOpenIM)
XIM 应分两方面来谈,一是 XIM server, 另一是 XIM client。对 XIM client 而言,
如同 Output Method 一般,我们可以在程式中呼叫 XOpenIM() 来开启一 个 Input
Method, 同时指定 XIM server 的名字。但这部分我还没有仔细研究, 有兴趣的朋友
可以参考本章开头所列的参考资料。
我目前是在写 XIM server 的部分,但我没有直接拿 X Window 的函式来写,而 是拿
IMdkit lib 来写,以简化整个程式写作。在此我不多作说明了,有兴趣的 朋友可以抓
取:
xcin-2.5-19990218.tar.gz
回去看,□头的 doc/programming/ 目录中有对此稍作说明,同时 IMdkit 的 source
也整个附在 xcin-2.5 source 中。
上一页 [1] [2] [3] [4] [5] |
|
| 教程录入:小秦 责任编辑:小秦 |
上一篇教程: 关于Mandrake中文问题的几点建议 下一篇教程: Chinput 安装指南 |
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |