FreeBSD 中文化实践


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 "

本文作者:
« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3