庞大资源库的计算机教程网站!
设为首页
加入收藏
总编信箱
投稿或申请专栏请先 [登 陆]
首页 操作系统 程序设计 图形图像 媒体动画 机械电子 WEB开发 数 据 库 办公系列 路由技术 网络原理 网络应用
认证考试 安全技术
首页>操作系统>Linux>编程开发>正文
资料搜索
Google搜索
Google
返回上级列表

推荐文章

快速保存网页中所有图片的方法
Windows中让光驱巧妙“隐身”技
防范非法用户入侵Win 2000/XP系
两款比较典型的ASP木马防范方法
有关表格边框的css语法整理
Windows XP中可以被禁用的服务
SQL Server导出导入数据方法
Javascript所有对象的属性的获
网页(HTML)中的特殊字符
与篮球共舞,尽显模式本色
QQ病毒的手工清除方法
Photoshop为极品美女打造性感睫
天衣无缝:IIS与PHP水火也相容
SQL Server存储过程编写和优化

Tcl/Tk 汉化解决方案

 作者:卢亮    日期:2005-4-13
字号选择〖 〗/ 双击滚屏 单击停止   
Tcl/Tk 是Xwindows下比较流行的制作图形界面的软件之一,与GTK, QT相比,在
软件编写和调试上比较有优势. 另外也具有很强的扩展功能. 用户可以自己书写
函数和编写各种库. 现在已经有PerlTk和Python利用Tcl/Tk 的扩展功能来实现
图形功能.

当然,Tcl/Tk本身也有不足之处,原因之一是语法太过于free,有些接近 korn shell
和perl 5. 另外一个明显的缺点是众多script语言都具有的运行速度慢的问题.
我尝试了不同的解释器并采用中文界面和英文界面来对比,发现通常Tcl/Tk的运行
速度是Perl 5的一半左右,如果要调用中文界面,那么速度大大受影响.

即使如此,Tcl/Tk也是在Unix/Linux下开发中文图形界面的理想选择之一.

下面介绍如何汉化Tcl/Tk:

1) 当前的tcl最新版本是tcl8.3.4,从tcl 8.1起都已经加入了i18n的支持.
但也许因为中文软件发展缓慢,tcl 8.1始终不能支持中文. tcl 8.1里
有关语言的部分在 unix/tclUnixInit.c 里定义. 比如里面的日文部分:

{"japanese.sjis", "shiftjis"},
{"japanese.euc", "euc-jp"},
{"japanese-sjis", "shiftjis"},
{"japanese-ujis", "euc-jp"},

但是缺少中文, 那么在 {NULL, NULL} 之前加上中文支持:


{"zh_CN", "euc-cn"},
{"zh_CN.gbk", "euc-cn"},
{"zh_CN.gb2312", "euc-cn"},

这样重新编译 tcl, 将得到的tclsh 覆盖系统的tclsh .在这样的情况下 tclsh
可以在中文 locale下运行. 而通常安装的tclsh 不能在中文locale 下运行:

setenv LC_ALL zh_CN
~$ tcl
tcl>

同样, wish 也可以在 zh_CN 下运行.

2 ) tclsh可以在中文 locale下运行还不能直接写带有中文的脚本, 例如下面
的话就是建立一个按钮:

button .b -text "按钮" -command exit
pack .b

这样的按钮一定是乱码, 那么配置上中文字体也不能解决显示问题:

.b config -font hanzigb16fs

解决办法只有一个, 利用tclsh已经提供的 encoding 功能, 例如先将
"按钮" 转换成 euc-cn 代码,然后就可以显示了. 例如:

#!/usr/bin/wish -f

set a [encoding convertfrom euc-cn "按钮" ]

button .b -text $a -command exit -font hanzigb16fs

pack .b

这样就创建了一个中文的按钮.

至此,中文的显示问题已经全部解决, 利用Tcl/Tk ,我将 cdict
建立了一个图形界面, 可以实现cdict 的基本功能. 地址:

http://www.it00.com/Files/BeyondPic/linux/0573014542362017.jpg

写这个界面大约花了几十分钟, 而且我也不是很擅长写程序,可见Tcl/Tk界面
功能的强大.

3) 前几天我在另外一文中指出可以采用 unioncode 来解决, 可是实践证明
不是一个好的办法,虽然可以绕过许多问题但是本身要找到 unioncode 就不太
方便.
button .b -text "\u592a\u9177"
pack .b


就此打住,等我有空了会将最新的tcl/tk 连通汉化版本极其 cdict 和这个
简单的界面打包供下载.
上一篇:Linux Unicode 编程    下一篇:Linux开发GUI应用程序概述  
[发送给好友]  [关闭窗口]  [返回顶部]   转载请注明来源:www.it00.com   
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
责任编辑: 原点 投稿作者: 卢亮
信息来源: 网络 录入时间: 2005-4-13
关于我们 - 广告服务 - 版权申明 - 网站地图 - 联系方式 - 总编信箱 - 会员投稿