TurboLinux 4.02中文化初探 2
c8 ed bc fe 21
wcstombs() -> length 17, 测试Locale的软件!
ptr 测试Locale的软件!, mblen 1, wchar b2
ptr 馐訪ocale的软件!, mblen 1, wchar e2
ptr 试Locale的软件!, mblen 1, wchar ca
ptr 訪ocale的软件!, mblen 1, wchar d4
ptr Locale的软件!, mblen 1, wchar 4c
ptr ocale的软件!, mblen 1, wchar 6f
ptr cale的软件!, mblen 1, wchar 63
ptr ale的软件!, mblen 1, wchar 61
ptr le的软件!, mblen 1, wchar 6c
ptr e的软件!, mblen 1, wchar 65
ptr 的软件!, mblen 1, wchar b5
ptr 软件!, mblen 1, wchar c4
ptr 软件!, mblen 1, wchar c8
ptr 砑?, mblen 1, wchar ed
ptr 件!, mblen 1, wchar bc
ptr ?, mblen 1, wchar fe
ptr !, mblen 1, wchar 21
在TLC4.02下locale为zh_CN:
MB_CUR_MAX 3
string 测试Locale的软件!, length 17
mbstowcs() -> num 12, 6d4b 8bd5 4c 6f 63 61 6c 65 7684 8f6f 4ef6 21
wcstombs() -> length 17, 测试Locale的软件!
ptr 测试Locale的软件!, mblen 2, wchar 6d4b
ptr 试Locale的软件!, mblen 2, wchar 8bd5
ptr Locale的软件!, mblen 1, wchar 4c
ptr ocale的软件!, mblen 1, wchar 6f
ptr cale的软件!, mblen 1, wchar 63
ptr ale的软件!, mblen 1, wchar 61
ptr le的软件!, mblen 1, wchar 6c
ptr e的软件!, mblen 1, wchar 65
ptr 的软件!, mblen 2, wchar 7684
ptr 软件!, mblen 2, wchar 8f6f
ptr 件!, mblen 2, wchar 4ef6
ptr !, mblen 1, wchar 21
这里有个很怪的问题, 装上这个包后,
在rh6.1下locale为zh_CN, 极不正常,
MB_CUR_MAX 3
string 测试Locale的软件!, length 17
mbstowcs() -> num -1,
wcstombs() -> length 0,
ptr 测试Locale的软件!, mblen -1, wchar 0
在rh6.1下locale为zh_TW.Big5, 要好些
MB_CUR_MAX 3
string 测试Locale的软件!, length 17
mbstowcs() -> num -1,
ptr 测试Locale的软件!, mblen 2, wchar 8046
ptr 试Locale的软件!, mblen 2, wchar 5f78
ptr Locale的软件!, mblen 1, wchar 4c
ptr ocale的软件!, mblen 1, wchar 6f
ptr cale的软件!, mblen 1, wchar 63
ptr ale的软件!, mblen 1, wchar 61
ptr le的软件!, mblen 1, wchar 6c
ptr e的软件!, mblen 1, wchar 65
ptr 的软件!, mblen 2, wchar 8154
ptr 软件!, mblen -1, wchar 8154
怀疑TLC对glibc打过补丁, 就用TLC4.02的glibc 2.1.1替换RH6.1的
glibc2.1.2,得强行替换
# rpm -e glibc; rpm -i --nodeps glibc-2.1.1-4.i386.rpm
然后就正常了, 没搞明白, glibc 2.1开始不就完全支持locale了吗,
还要动什末,:(
export LC_ALL=zh_CN后, 就中文locale就可以用了,这时如果你在TLC
下, 运行mc, 菜单就是中文的啦, RH6.1下的mc也是符合i18n的可惜没有
中文message, 菜单自然不是中文啦, 可以用TLC的mc包换掉RH6.1的.
另外, 程序的出错提示也是中文的啦, 可以用TLC的gettext换掉rh6.1的,
运行gettext, 看看中文的提示信息, hehe
不过TLC作的不彻底, 只提供了很少的几种软件的中文message,不知道其他
中文Linux的locale作的怎末样
3. X-Windows的中文化
按照TLC的说法, 采用freetype + zwinpro的外挂方案, 不用改动X-window
这里比较麻烦,步骤很多:
(1)安装中文字库
zh-ttf-1.1-7.i386.rpm
在/usr/X11R6/lib/X11/fonts/tt/安装华天中文字库
rpm -ivh zh-ttf-setup-1.1-2.i386.rpm
在/usr/X11R6/lib/X11/fonts/tt/下, 字库的fonts.dir
和fonts.alias
(2)配置Xfs( X font server)
将路径/usr/X11R6/lib/X11/fonts/tt/加入到XF86config中的FontPath
列表中去
同时将该路径加入到/etc/X11/fs/config的catalogue中去
kill -HUP xfs的pid重起Xfs
(3)安装Zwinpro 3.0
zh-pcf和ZWinPro。最好一齐装,他们相互之间有dependencies,也可,rpm -i
--nodeps。 我用的是北京linux俱乐部的版本,已经有cxterm了. 如果你的rh没有,请
先安装它, 因为Zwinpro使用了cxterm的输入法,使用zh-pcf的字库.
Zwinpro由三部分组成:
输入法chinput,wrap库libZWin.so,字典xdict
从中文化的角度看, 前两者更重要些。
用gtk widget的程序很奇怪,明明调用一下gtk_set_locale()就可以有国际化支持,
但却偏不用(象GXedit),gtk的作者也不在gtk_init()里调用一下。没办法,只好
硬弄个wrapper.so 用LD_PRELOAD加上去。
(我先安装的是binary的包,gnome的中文界面出来了,但在xterm中启动chinput时
X-window跟死了似的,可能是哪个库冲突了)
还是用TLC站点的繁体版的ZWinpro3.0的source编译(简体版只有2.0版,还不支持
XIM).再用简体版的配置文件覆盖之(主要是/usr/lib/ZWinpro目录下的
Chinput.ad, ZWinPro.ad和zwincontrol.rc)
这样就可以看到chinput的输入条了,:)
4)设置gtk
在/etc/gtk里要有gtkrc.zh,没有自己new一个,要有类似下面的语句:
(我比较懒,直接从TLC拷过来)
style \"default\" {
fontset = \"-adobe-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-1,\\
-*-song-medium-r-*--12-*-*-*-*-*-gb2312.1980-0\"
}
class \"GtkWidget\" style \"default\" (关键是这行)
(5)设置环境变量
export LC_ALL=zh_CN
export LANG=zh_CN
export LD_PRELOAD=/usr/lib/libZWin.so
这时startx进入gnome, 就已经是中文环境了, GXedit可以完美的支持中文, 不会出现
删除时半个汉字的情况.
kde的问题比较奇怪, rh6.1上有两个qt lib, qt-1.44和qt-2.01, kde桌面是用
qt-1.44编译的, 但缺省的却是qt-2.01?
qt-1.44要支持中文的话,需要打补丁, 我将rh6.1的qt-1.44库换成TLC的打过补丁
的版本,但kde起不来.
后来听TLC的人说, 他们是先给qt-1.44打i18n的补丁, 编译通过,再编译
整个kde src.
这样看来, 要在rh6.1下拥有中文的kde环境, 要末将TLC的kde包统统弄来, 要末使用
中文X-server, 外挂方案是不可行啦.不知道BluePoint的中文X-server是怎么回事,
采用这种方案, 需不需要对qt-1.44打i18n补丁?
我个人觉得TurboLinux的最大贡献是: gbk locale和zwinpro, 当然与台湾的CLE
路子很象(big5 locale和xcin), 工作也差不多. 其实象中文man这样的工作也很值得
作, 不过好像大家都不以为然, 很不屑的样子. Linux要打桌面的话,没有中文的帮助
怎末说的过去?
有不对的地方请大家指正
发布人:Crystal 来自:linux之家