FreeBSD 中文化实践
30 ڣ2008-11-22 10:20:02 ߣԴ
|
ԴƼ
FreeBSD 4.7 Release + Xfree86 4.2.1 + gnome 1.4 + OpenOffice 1.0.1 + Chinput3 (本文中所涉及到的源码请参考 ftp://bsd.starhiway.net/pub/FreeBSD/ ) 经过二十天耐心的资料查询、反复测试,终于可以在FreeBSD上书写文档了,这篇文章就是完全在运行FreeBSD的系统上完成的,请大家与我共同分享使用FreeBSD的乐趣。 1.让XFree86支持TrueType字体,安装SimSun字体 即使不打算使用FreeBSD做文本编辑这样的工作,安装SimSun字体也是非常必要的,XFree86自带的中文字体看起来很不习惯。 随 FreeBSD 4.7 Release 发行的 Xfree86 版本是 4.2.1 ,Xfree86 4.x已经内建支持 TrueType 字体。有两个不同的模块能够起动这个功能:freetype 和xtt。这里使用的是 xtt 模块。在 /etc/X11R6/lib/X11/XF86Config文件中加入: Load “xtt” 安装TrueType字体管理软件ttfm,步骤如下: #cd /usr/ports/chinese/ttfm #make #make install 为TrueType字体创建一个目录(/usr/X11R6/lib/X11/fonts/TrueType),把windows fonts 目录下的 simsun.ttf 文件拷贝到这个目录。 进行以下步骤: #cd /usr/X11R6/lib/X11/fonts/TrueType #ttfm.sh –add xttfm simsun.ttf 如果将simsun.ttf文件存放在其他目录下,执行ttfm.sh会自动创建 /usr/X11R6/lib/X11/fonts/TrueType 目录,并在这个目录下创建符号链接simsun.ttf,指向simsun.ttf的实际存储位置。执行完ttfm.sh后,在 /usr/X11R6/lib/X11/fonts/TrueType目录下创建了fonts.scale,fouts.dir和encodings.dir文件。 在/etc/X11R6/lib/X11/XF86Config文件中加入: FontPath “/usr/X11R6/lib/X11/fonts/TrueType” 重新起动X-windows,使用 xlsfonts -fn “*gb*” 列出系统中所有中文字体,如果包括有 -misc-simsun-medium-r-normal—0-0-0-0-c-0-gb2312.1980-0 等则表明simsun字体安装完成。然后就可以在Mozilla中欣赏一下漂亮的SimSun字体。 2.设定locale 根据一些资料,FreeBSD系统对中文的locale支持为zh_CN.EUC,而XFree86只支持zh_CN.gbk,www.freebsdchina.org提供了让XFree86支持zh_CN.EUC的方法。根据这个方法 下载Xfree86 4.2.0源码,包括X420src-1.tgz,X420src-2.tgz,X420-src3.tgz三个文件和升级到4.2.1的patch包4.2.0-4.2.1-1-freebsd.patch.gz。
(该源码可从 ftp://bsd.starhiway.net/pub/FreeBSD/distfiles/xc/ 下载)
使用 tar 解开压缩包。 使用如下命令将源码升级到4.2.1。 gzip -d < 4.2.0-4.2.1-1-freebsd.patch.gz | patch -p0 -E 进入目录xc/nls/XI18N_OBJS,把zh文件复制一个名为zh_CN的文件,然后在这个目录中的Imakefile中加入一行: XI18NTarget(zh_CN) 回到xc目录,重新编译安装整个X系统。 设定locale为zh_CN.EUC c shell修改.cshrc 加入: setenv LC_ALL zh_CN.EUC setenv LANG zh_CN.EUC bash修改.profile 加入: export LC_ALL=zh_CN.EUC export LANG=zh_CN.EUC 修改 /usr/X11R6/share/gnome/gtkrc.zh_CN 将所有的fontset设置修改为: fontset = "-misc-SimSun-medium-r-normal--14-*-*-*-*-*-gb2312.1980-0" 修改 /usr/X11R6/share/themes/gtk/Default/gtkrc.zh_CN 如下: style "gtk-default-zh-cn" { fontset = "-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-iso8859-1, -*-SimSun-medium-r-normal--14-*-*-*-*-*-gb2312.1980-0,*-r-*" } class "GtkWidget" style "gtk-default-zh-cn" 重新起动X-win,现在在菜单里应该可以看见中文的菜单了。 3.安装chinput3 从ftp://ftp.freebsdchina.org/pub/china-ports/下载 chinput302final.tgz,tar 解压后,进行编译。 #make #make data #make install #make install-data 这个版本的源代码还有一些错误。主要如下: src/ZWinControl/text目录下的文件zwincontrol_gb.po中有一个重复定义,删除。 安装时提示/usr/share/locale/zh_TW.Big5/LC_MESSAGES存在,备份后删除再进行安装。 需要将fonts目录下的字体安装到x-win系统中。创建/usr/X11R6/lib/X11/fonts/chgb目录,将fonts目录下的两个文件拷贝到创建的目录下,并在/usr/X11R6/lib/X11/XF86Config配置文件中加入: FontPath "/usr/X11R6/lib/X11/fonts/chgb/" 在用户目录下的 .xinitrc目录中加入: export XMODIFIERS=@im=Chinput chinput exec gnome-session 这样在x-win执行其他程序之前起动chinput,就可以在mozilla等可以编辑文件的软件中用Ctrl+Space叫出输入法了。 将修正后的chinput3上载在 ftp://bsd.starhiway.net/pub/FreeBSD/chinput3/ 上。 4.安装openoffice.zh_CN 从ports安装openoffice.zh_CN,编译openoffice需要有足够的硬盘空间(约4G),进入目录/usr/ports/chinese/openoffice.zh_CN/ #cd /usr/ports/chinese/openoffice.zh_CN #make 由于openoffice倚赖很多其他软件包,ports能够自动下载所需软件包的原文件并进行安装,在他所倚赖的软件包安装完成后,会下载openoffice的源文件并开始编译。但openoffice所依赖的jdk的源代码由于有一些特殊的许可问题,需要手工到相应网站进行下载。openoffice使用了mozilla 1.0.1的源文件,在编译时会出错。将/usr/ports/www/mozilla/ 目录下的所有文件拷贝到/usr/ports/chinese/openoffice.zh_CN/work/mozilla下,再回到/usr/ports/chinese/openoffice.zh_CN下重新make,即可顺利完成编译,编译比较耗时,耐心等待编译完成吧。 完成编译后,make install安装。 然后在 x-win 环境下运行 openoffice, 按照提示一路下一步(Next), 就完成了设置。 注意这时的字体很模糊。 完成了设置后,再次运行openoffice,OK,现在开始修正字体。在菜单工具->选项 里,Openoffice.org->字体替换 选中 使用替换表,在字体里写入 Andale Sans UI,在替换为一栏选择SimSun字体,然后按绿对勾按钮添加。再在前面两个选中框中选中,确定即可。现在菜单的字体完全正常了。 在添加字体替换时,如果你找不到绿对勾按钮。可能是因为你的屏幕分辨率和字体设置问题,导致那个对话框拉的很长。可以通过设置虚拟屏幕的方式,将屏幕扩大,以便能够显示出那个按钮。 在/usr/X11R6/lib/X11/XF86Config文件中,对应的显示模式下加入 Virtual 1600 1200 如: Section "Screen" Identifier "Screen0" Device "Card0" Monitor "Monitor0" DefaultColorDepth 16 /* 默认显示颜色深度为16位色 */ SubSection "Display" Depth 1 EndSubSection SubSection "Display" Depth 4 EndSubSection SubSection "Display" Depth 8 EndSubSection SubSection "Display" Depth 15 EndSubSection SubSection "Display" Virtual 1600 1200 /* 设定虚拟屏幕大小为1600 * 1200 */ Depth 16 EndSubSection SubSection "Display" Depth 24 EndSubSection EndSection 附相关配置文件: /* XF86Config */ Section "ServerLayout" Identifier "XFree86 Configured" Screen 0 "Screen0" 0 0 InputDevice "Mouse0" "CorePointer" InputDevice "Keyboard0" "CoreKeyboard" EndSection Section "Files" RgbPath "/usr/X11R6/lib/X11/rgb" ModulePath "/usr/X11R6/lib/modules" FontPath "/usr/X11R6/lib/X11/fonts/TrueType/" FontPath "/usr/X11R6/lib/X11/fonts/URW/" FontPath "/usr/X11R6/lib/X11/fonts/TTF/" FontPath "/usr/X11R6/lib/X11/fonts/misc/" FontPath "/usr/X11R6/lib/X11/fonts/Speedo/" FontPath "/usr/X11R6/lib/X11/fonts/Type1/" FontPath "/usr/X11R6/lib/X11/fonts/75dpi/" FontPath "/usr/X11R6/lib/X11/fonts/100dpi/" EndSection Section "Module" Load "xtt" Load "dbe" Load "dri" Load "extmod" Load "glx" Load "pex5" Load "record" Load "xie" Load "xtrap" Load "speedo" Load "type1" EndSection Section "
Դ. |