Skip to Content

中文支持包技术细节

labrador 的头像

一些国际化支持文件

gconv,用来做编码间转换用的,fcitx需要用到,大概是为了解开那个GB2312编码的配置文件。其他比如geany中编码转化也需要用到。
./usr/lib/gconv/*
libc的locale支持文件
./usr/lib/locale/zh_CN.utf8/*
Puppy4自带的i18n数据不包含足以生成中文locale的信息,这个包里所用的数据都来自GNU libc。解开glibc包之后,将localedata/charmapslocaledata/locales两个目录复制到/usr/share/i18n/中,然后运行:
localedef -v -c -i zh_CN -f UTF-8 /usr/lib/locale/zh_CN.utf8
注意,最后一个参数一定要用目录形式。这里还有一个版本的问题,Puppy4使用的是glibc-2.6.1,但是用2.6.1源码包中的i18n数据生成的中文locale在Puppy4下使用却有很多问题,比如如果pidgin中的好友用中英文混合的nickname会导致pidgin崩溃,使用bash的tab键自动扩展的时候也会导致rxvt崩溃。我发现用glibc-2.3.6中的i18n数据就没有问题,这背后估计有Puppy4中的一些库的版本的问题。

下面是X11用的locale支持文件,不太清楚是做什么用的,fcitx需要。
./usr/X11R7/lib/X11/locale/compose.dir
./usr/X11R7/lib/X11/locale/locale.alias
./usr/X11R7/lib/X11/locale/locale.dir
./usr/X11R7/lib/X11/locale/zh_CN.UTF-8/XLC_LOCALE
./usr/X11R7/lib/X11/locale/zh_CN.UTF-8/XI18N_OBJS
./usr/X11R7/lib/X11/locale/zh_CN.UTF-8/Compose

fcitx,小企鹅输入法

修改了config文件,改了字体、字号和候选汉字的数量
./usr/bin/fcitx
./usr/share/fcitx/data/AutoEng.dat
./usr/share/fcitx/data/pyphrase.mb
./usr/share/fcitx/data/pySym.mb
./usr/share/fcitx/data/sp.dat
./usr/share/fcitx/data/punc.mb
./usr/share/fcitx/data/tables.conf
./usr/share/fcitx/data/gbks2t.tab
./usr/share/fcitx/data/pybase.mb
./usr/share/fcitx/data/config
./usr/share/fcitx/data/vk.conf

rxvt-unicode,支持utf8的终端模拟软件

这里用rxvt(就是rxvt-unicode)覆盖了Puppy4自带的rxvt,另外符号链接urxvt指向rxvt,这是为了使terminfo正常工作,否则Home和End两个键不能正常工作。
./usr/bin/rxvt
./usr/bin/urxvt
./usr/share/terminfo/r/rxvt-unicode
./usr/share/applications/chinese_pack.desktop
编译rxvt-unicode所用的参数
./configure --prefix=/usr \
	--disable-unicode3 \
	--disable-combining \
	--enable-xft \
	--enable-font-styles \
	--disable-afterimage \
	--disable-transparency \
	--disable-fading \
	--enable-rxvt-scroll \
	--disable-next-scroll \
	--disable-xterm-scroll \
	--disable-perl \
	--enable-xim \
	--enable-backspace-key \
	--enable-delete-key \
	--enable-resources \
	--disable-8bitctrls \
	--disable-swapscreen \
	--disable-iso14755 \
	--disable-frills \
	--disable-keepscrolling \
	--enable-selectionscrolling \
	--enable-mousewheel \
	--enable-slipwheeling \
	--enable-smart-resize \
	--enable-text-blink \
	--enable-pointer-blank \
	--disable-utmp \
	--disable-wtmp \
	--disable-lastlog \
	--with-codesets= \
	--with-x

中文字体

为了控制中文支持包的体积,这里只用了wqy的10pt点阵字体
./usr/share/fonts/default/misc/wenquanyi_10ptb.pcf
./usr/share/fonts/default/misc/wenquanyi_10pt.pcf

JWM

增加了一个叫Chinese的主题,此主题使用Wenquanyi Bitmap Song字体,使得JWM可以正确显示汉字
./root/.jwm
./root/.jwm/jwm_colors
./root/.jwm/jwmrc-theme
./root/.jwm/themes
./root/.jwm/themes/Chinese-tray.png
./root/.jwm/themes/Chinese-window.png
./root/.jwm/themes/Chinese-jwmrc
./root/.jwm/themes/Chinese-colors

geany

修正geany不能输入汉字的问题,是因为geany占用了ctrl-space,小企鹅就呼不出来了。
./root/.geany/keybindings.conf

pmount

补丁过的pmount,可以挂载有中文文件名的ntfs分区和cd,另外它可以根据fstab选择挂载点,而不仅仅是设备名称。
./usr/sbin/pmount

pidgin

替代pidgin自带的QQ插件,这样就可以正常显示群名了
./root/.purple/plugins/libqq.so

安装/卸载

  • 启动fcitx(/root/.xinitrc);
  • 去掉/root/.Xdefaults中设置urxvt背景色彩的一段;
  • 将geany新建文件的编码改为utf-8,这样才能保存包含中文字符的新文件;
  • 重新构建/usr/share/fonts/default/misc中的fonts.dir和fonts.scale;
  • 重建xterm指向rxvt的符号链接,为的是方便rox中按`键启动终端;
  • 自动恢复chinese_pack-0.2卸载时删除的/usr/share/fcitx/data/tables.conf,这样就不需要重新安装chinese_pack_extra;
  • 设置/root/spot/.didiwiki的拥有着为spot:spot,这样didiwiki才可以新建页面;
  • fc-cache -fv
  • fcitx-3.5-070713在检测到~/.fcitx/config不存在时会自动建一个配置文件,有时候是从/usr/share/fcitx/data/config拷贝过来,有时候是一个不知哪来的配置,这个配置会弄得fcitx字体很难看。所以在fcitx启动前加了一段检测,如果发现是那个讨厌的配置,则用/usr/share/fcitx/data/config覆盖掉;
  • 设置LC_CTYPE之前做检测,如果已经被设为其他zh_CN的locale就不改这个变量了;
  • 在/etc/rc.d/rc.local中加入自动挂载补丁,主要就是根据/etc/fstab中的挂载点提前创建好目录;
  • 修改/root/.mozilla/default/*/pref.js,禁止光标自动跳转,以减少对输入法的干扰。
./pinstall.sh
./puninstall.sh

发表新评论

  • 你可以在文本中使用BBCode标记语言。 URL会自动被转为链接。

更多关於格式化选项的信息

CAPTCHA
请验证您是否是机器人。
Image CAPTCHA
Enter the characters shown in the image.