Linux 版 (精华区)

发信人: don (驿路梨花), 信区: Linux
标  题: Linux下的中文输入
发信站: 紫 丁 香 (Tue May  9 10:22:14 2000), 转信

发信人: null (钠尔), 信区: LINUX
标  题: Linux下的中文输入
发信站: 碧海青天 (Sun Apr 30 12:40:54 2000), 转信

Linux下的中文输入
                                           作者:于明俭
在汉字输入上, GB 与 Big5 的输入由于历史与习惯的原因, 已截然分化 成两种,
这就是在大陆最流行的 Chinput 和 在台湾最流行的 XCIN, 它们都经历了自定义协议阶
段,
目的是配合外挂式中文平台, 最终向国 际化标准协议靠拢,
即支持XIM协议(日语输入软件kinput2也经历了漫长 的过程).
在中文平台TL-ZWinPro下使用Chinput, 它的XIM协议和原来的 协议能够无缝接合使用.

目前Chinput已成为大陆最流行的Linux中文输入软件. 它被众多的Linux中文平台所采用
:
     TurboLinux 中文版3.02,4.0: 北京拓林思软件公司
     ZhXWin: 由宫敏博士开发的Linux下的中文平台
     Xteam Linux 1.0: 北京冲浪平台
     BluePoint Linux(preview): 网络工作室
Chinput 以CXterm的输入引擎为基础, 支持中文GB/GBK/Big5, 日文和韩文输入.
后又增添了李振春先生的智能拼音输入, 使输入法日臻完备. 它具有独特的无 边界窗口
,
浏览输入模式, 单双行输入模式, 颜色字体可配置性. 如果配合中文平台 TL-ZWinPro,

它可以根据窗口当前的编码自动输入GB/GBK/Big5.极大地方便了 中文用户的网上冲浪,

如浏览网页时的输入, 上BBS时输入, 都有可能需要同时 输入GB和Big5编码,
这时您不必要重新启动Chinput, 便可以输入这两种不同的 编码.
下面简述Chinput的中文输入接口, 以便有兴趣开发中文软件的Linux 程序员有更深入的
认识.
     Chinput 协议
     Chinput的最初协议是基于ClientMessage的Chinput协议. 它的 主要目的是为X
     Window下的客户程序提供方便的汉子输入接口. 它所提供的主要接口函数有:
          int HZclientInit() -- 初始化输入服务器
          int HZsendKey() -- 以ClientMessage方式把键码发送给输入服务器
          int HZprocInput() -- 处理输入服务器传来的输出
          int HZqueryServer() -- 查寻输入服务器的信息
     在 Chinput 注册的原子(Atom)有:
          "_CHINESE_CONVERSION" -- Chinput
          "_CHINESE_CONTROLBAR" -- 用于控制的控制条
          "_HZ_OUTPUT_ATOM" -- 输出汉字
          "_HZ_INPUT_ATOM" -- 输入汉子
          "_HZ_CONFIG_ATOM" -- 配置属性
          "_HZ_QUERY_ATOM" -- 查询属性
          "_HZ_REPLY_ATOM" -- 答复属性
          "_HZ_GRASP_ATOM" -- 抓词
     上述原子用于 Chinput 和应用软件、控制条、抓词服务器之间进行 通讯.
     控制条可以选择输入方法, 应用软件也可以通过热键选择输入 方法.
     特别是应用软件可以配置输入条的输出编码.
     使用Chinput协议必须有中文平台支持, 在TurboLinux中, 必须设置 环境变量
     LD_PRELOAD=/usr/lib/libZWin.so
     XIM 协议
     Chinput 对X11R6的国际化输入提供了标准接口, 即XIM接口. Chinput
     所使用的Locale是zh_CN, 定义的输入服务器名称是"Chinput", 所以 在客户程序
找不到
     Chinput 时, 应设置XMODIFIERS为"@im=Chinput".
     XIM 的输入风格(preedittype)共有四种: on the spot, over the spot, off th
e spot, root window, "on
     the spot" 是在Client软件的当前 输入处输入, "over the spot"
     是在当前输入处之上有一预编辑窗口提供 输入, "off the spot"
     是在输入窗口的下方提供预编辑取和输入状态显示 区, "root window"
     是在独立于输入软件的窗口中(该窗口为根窗口的子 窗口)输入. 可以看出, "roo
t window"
     是比较适合汉字输入的. Chinput 目前只支持根窗口输入风格(root-window styl
e). 如果有必要,
     其它的输入风格也将被陆续加入.
     XIM 支持与原协议无缝结合, 对用户来说是不透明的. 当用户在中文
     平台上使用XIM支持的软件时, 原协议对该应用软件自动失效. 这要求
     中文平台需要作特殊处理, 才能避免两种协议的冲突.
     当您使用高层库函数, 如gtk/qt/Motif时, 您不必关心客户端的接口, 当使用Xli
b写客户程序时,
     请参见文章 编写支持XIM的客户软件.
     支持软件(运行前设置LC_ALL=zh_CN.EUC, LANG=zh_CN.EUC)
          nxterm, 修改源码. 中文显示需中文平台支持
          xemacs, 编译:configure --with-xim=xlib
          rxvt2.60, 编译:configure --enable-xim --enable-gb, 运行: rxvt -im
Chinput -pt Root
          netscape: 需改动Netscape.ad, 部份输入区有问题:
          Netscape*fontList: -*-helvetica-bold-r-*-*-*-140-*-*-*-*-iso8859-*
;-*-gb13000.1993-1:
          xedit: 资源文件,
                  xtDefaultFontSet: cclib16,-adobe-*-iso8859-1
                  xedit*international: True
                  xedit*fontSet: -tlc-*--16-160-75-75-c-160-gb2312.1980-1, -
adobe-courier-bold-r-*
                  -16-*-iso8859-1
                  .Xedit.shellext.inputMethod:    Chinput
                  .Xedit.shellext.preeditType:    Root
          vim-5.4 命令:vim -g (aka gvim): X 资源文件
                  Vim*international: True
                  Vim*.inputMethod: Chinput
                  Vim*.preeditType: Root
                  Vim.font: -sony-fixed-medium-r-normal--16-120-100-100-c-80
-iso8859-1
                  Vim*fontSet: -sony-fixed-medium-r-normal--16-120-100-100-c
-80-iso8859-1,-tlc-song-medium-r-normal--16-160-75-75-c-160-gb13000.1993-1
                  Vim*fontList: -sony-fixed-medium-r-normal--16-120-100-100-
c-80-iso8859-1,-tlc-song-medium-r-normal--16-160-75-75-c-160-gb13000.1993-1
                  vim 资源文件 .gvimrc(.vimrc):
                  :set fileencoding=prc
                  :set guifontset=-sony-fixed-medium-r-normal--16-120-100-10
0-c-80-iso8859-1,-tlc-song-medium-r-normal-*-16-*-*-*-*-*-gb13000.1993-1
          qt-1.44(i18n patched)/KDE: setenv XMODIFIERS @im=Chinput
          gtk/gnome: 设置 fontset
          gimp: 须修改资源文件
          Motif: 设置 fontset

--

--
一条驿路,一种氛围。
一朵梨花,一种思考。
希望能在Linux这条驿路上与你同行!

※ 来源:.紫 丁 香 bbs.hit.edu.cn.[FROM: 202.118.239.63]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.066毫秒