REHL5中文字体及fcitx安装和设置

本文详细介绍了在LinuxOBI5.2.01环境下,解决中文字体乱码问题的方法,并通过安装字体美化包、设置locale、使用fcitx等步骤实现中文显示。包括了安装中文字体、美化包的版本更新、解决安装错误、设置自动启动fcitx、调整Acrobat显示中文、以及解决与OpenOffice的冲突等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装中文字库
安装Linux OBI 5.2.01后,发现虽然session language选择了中文,但进入KDE后中文都显示为方块乱码,应该是缺少中文字库。

参照http://www.liuzd.com/blog/219.html安装中文字体美化包linuxsir-fontconfig-3.4.bin,但发现安装后/usr/bin/system-config-network和其它KDE管理工具运行时出现下面错误。

Error in sys.excepthook:
Traceback (most recent call last):
File "/usr/sbin/system-config-network-gui", line 67, in <lambda>
PROGNAME, PRG_VERSION)
File "/usr/lib/python2.4/site-packages/rhpl/exception.py", line 337, in handleException
import gtk
File "/usr/lib/python2.4/site-packages/gtk-2.0/gtk/__init__.py", line 48, in ?
from gtk import _gtk
ImportError: /usr/lib/libcairo.so.2: undefined symbol: FT_GlyphSlot_Embolden

Original exception was:
Traceback (most recent call last):
File "/usr/sbin/system-config-network-gui", line 70, in ?
import gtk
File "/usr/lib/python2.4/site-packages/gtk-2.0/gtk/__init__.py", line 48, in ?
from gtk import _gtk
ImportError: /usr/lib/libcairo.so.2: undefined symbol: FT_GlyphSlot_Embolden

重装系统后,比较发现美化包所带的freetype,fontconfig, libXft, pango等版本太旧,下面是美化包所带rpm包。

fcitx-2.1.0-2.i386.rpm
fontconfig-2.2.92-0.5.linuxsir.i386.rpm
fontconfig-devel-2.2.92-0.5.linuxsir.i386.rpm
freetype-2.1.7-4.linuxsir.i386.rpm
freetype-demos-2.1.7-4.linuxsir.i386.rpm
freetype-devel-2.1.7-4.linuxsir.i386.rpm
freetype-utils-2.1.7-4.linuxsir.i386.rpm
libXft-2.1.2-4.i386.rpm
pango-1.2.5-10.linuxsir.i386.rpm
pango-devel-1.2.5-10.linuxsir.i386.rpm
simsun-2.2-linuxsir.noarch.rpm

这是我在Linux OBI 5.2.01中查到的软件版本。除了simsun和fcitx外,其它包的版本都比它新。

fontconfig-2.4.1-7.el5
fontconfig-devel-2.4.1-7.el5
freetype-2.2.1-19.el5
freetype-devel-2.2.1-19.el5
libXft-2.1.10-1.1
libXft-devel-2.1.10-1.1
pango-1.14.9-3.el5
pango-devel-1.14.9-3.el5

另外打开美化包带的setup.kde,发现它在安装时使用“rpm -Uvh --force”,难怪我使用”rpm -e“时因为软件包相互依赖无法卸载它安装的包。于是修改setup.kde,删除所有”rpm -Uvh --force“行,只保留后面的修改conf文件,如下setup2。

#!/bin/bash
if [ -f /etc/ld.so.conf ] ; then
	mv /etc/ld.so.conf /etc/ld.so.conf.old
	echo "/usr/lib" > /etc/ld.so.conf
	cat /etc/ld.so.conf.old >> /etc/ld.so.conf
fi
cp -rf /etc/fonts/fonts.conf.example /etc/fonts/fonts.conf
cp -rf /etc/fonts/local.conf.example /etc/fonts/local.conf
fc-cache -f  > /dev/null 2>&1
if ! grep -i "font_name" /etc/gtk-2.0/gtkrc  > /dev/null 2>&1  ; then
cat >> /etc/gtk-2.0/gtkrc << EOF
style "default"
{
font_name = "Tahoma,SimSun 10"
}
widget_class "*" style "default"
EOF
fi
chkfontpath -a /usr/share/fonts/simsun
/etc/init.d/xfs restart > /dev/null 2>&1
ldconfig

先运行“rpm -ivh simsun-2.2-linuxsir.noarch.rpm”安装simsun,再运行上面的代码。
删除/etc/profile.d/cfxmms.sh;

安装后console执行命令时会出现下面Warning,只要注释掉/etc/fonts/fonts.conf和/etc/fonts/local.conf中的”other_family“就可以了。

Fontconfig warning: "local.conf", line 84: unknown element "other_family"
Fontconfig warning: line 460: unknown element "other_family"

或者不用安装中文字体美化包,参见http://www.hacms.com/html/2010/0228/5985.html直接安装中文字体。

1. mkdir /usr/share/fonts/local
2. cp simsun.ttc /usr/share/fonts/local/simsun.ttf
3. cd /usr/share/fonts/local; ttmkfdir; cp fonts.scale fonts.dir;
4. chkfontpath -a /usr/share/fonts/local
5. service xfs reload

另外还有一种简单的方式设置中文显示,参见http://hi.baidu.com/jackjiaxiong/blog/item/c0284e6e52839ef74216942a.html

# rpm -ivh fontconfig-2.4.1-7.el5.i386.rpm
# rpm -ivh fontconfig-devel-2.4.1-7.el5.i386.rpm
# rpm -ivh fonts-chinese-3.02-12.el5.noarch.rpm
# service xfs reload

安装fcitx
下载安装fcitx-3.0.2-1.i386.rpm,在~/.bashrc中增加下面一行,就可以输入中文了。可以参照http://my.opera.com/wangzhijun/blog/show.dml/108169修改配置文件。

export XMODIFIERS="@im=fcitx"

[*]设置自动启动fcitx:

cd ~/.kde/Autostart/; 
ln -s /usr/bin/fcitx .

[*]reboot机器

安装完,发现fcitx和openoffice 3.0冲突,openoffice启动就没响应,将openoffice升级到3.2,问题依旧。

设置locale
为了使菜单保持为英文,但可以显示和输入中文,我在OBI Configuration Center选择English(USA),在Administration -> Language中选择English(USA),在Session language选择中国大陆,就可以使Firefox显示为英文版,mount分区时可以正常显示中文。

为了使Thundbird也显示为英文版,需要在/usr/bin/thunderbird头部增加

export LANG=en_US.UTF-8

为了在Thundbird和Firefox中使用fcitx,需要增加两行:

export LC_CTYPE="zh_CN.UTF-8"
export XMODIFIERS="@im=fcitx"

下面是env输出的locale相关变量:

LANG=zh_CN.UTF-8
GDM_LANG=zh_CN.UTF-8
LC_CTYPE=zh_CN.UTF-8

/etc/sysconfig/i18n的内容:

LANG="en_US.UTF-8"
SYSFONT="latarcyrheb-sun16"

Acrobat显示中文
http://ardownload.adobe.com/pub/adobe/reader/unix/8.x/8.1.2/misc/FontPack81_chs_i486-linux.tar.gz下载FontPack81_chs_i486-linux.tar.gz。

tar xvfz FontPack81_chs_i486-linux.tar.gz
cd CHSKIT
./INSTALL

从这可以找到最新Acrobat和中文包:
http://www.adobe.com/support/downloads/product.jsp?platform=unix&product=10
ftp://ftp.adobe.com/pub/adobe/reader/unix/

参考资料:
linux乱码问题:LANG变量的秘诀
LANG,LC_ALL,local详解(转)
Redhat 9中,几个关于中文字体和输入法的小结
fcitx 关于多语言,不同编码的一点说明;同时也可以用于解决fcitx不能输入问题
fcitx安装错误

注意:尽量使用"System" - "Add/Remove software"界面,避免执行yum install或rpm -Uvh,以免造成KDE崩溃。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值