Difference between revisions of "Localization/Simplified Chinese (简体中文)"
m (→locale的设定) |
m (→安装中文字体) |
||
Line 50: | Line 50: | ||
− | 系统字体将默认安装到/usr/share/fonts,如果你没有root权限或者只打算自己使用某些字体,你可以直接复制这些字体到.fonts(或者其他)目录下面,并把该路径加入/etc/fonts/local.conf中,参见后面章节。 | + | 系统字体将默认安装到/usr/share/fonts,如果你没有root权限或者只打算自己使用某些字体,你可以直接复制这些字体到~/.fonts(或者其他)目录下面,并把该路径加入/etc/fonts/local.conf中,参见后面章节。 |
参考网点: | 参考网点: |
Revision as of 02:49, 29 March 2011
请再仔细看看Arch的哲学"Arch 之道":
这意味着我们不会为你配置好一切,因为“喜好和需求,每人皆不同”,但是我们会尽量确保让你自行配置时,方便和简单。事实上,甚至远比你使用一些可能的Linux中文版本容易。
第一次使用Arch Linux时,用户通常会遇上这些(典型)的问题:
Contents
怎么显示中文的界面?
要正确实现中文,必需设置正确的locale和安装合适的中文字体。
locale的设定
Linux中通过locale来设置程序运行的不同环境。一般常用的中文locale有(最直观的分别是可显示字的数量):
zh_CN.GB2312 zh_CN.GB18030 zh_CN.UTF-8
推荐使用UTF8的locale。需要注意的是,对于glibc(>=2.3.6),需要修改/etc/locale.gen文件来设定系统中可以使用的locale
en_US.UTF8 UTF-8 zh_CN.UTF8 UTF-8 zh_CN.GBK GBK zh_CN.GB2312 GB2312 zh_CN.GB18030 GB18030
然后执行locale-gen命令,这样便可以在系统中使用zh_CN.UTF8,zh_CN.GBK,zh_CN.GB2312,zh_CN.GB18030,en_US.UTF8等locale。可以通过locale命令来查看当前使用的locale
locale
可以通过locale命令来查看目前可以使用的locale
locale -a
Archlinux中,通过rc.conf文件可以设置全局有效的locale:
LOCALE=en_US.UTF-8
对于个人用户,还可以在.bashrc或.xprofile中设置自己的用户环境,不同之处在于:
- .bashrc: 每次终端登录时读取并运用里面的设置。
- .xinitrc: 每次startx启动X界面时读取并运用里面的设置
- .xprofile: 每次使用gdm等图形登录时读取并运用里面的设置
在终端(文字)界面下也可以显示和输入中文,但需要安装cce、zhcon或fbterm。
安装中文字体
除了设置好locale,你还需要安装中文字体:
pacman -S wqy-zenhei
常用的免费(GPL或兼容版权)中文字体有
wqy-bitmapfont wqy-zenhei wqy-microhei (AUR中) wqy-microhei-lite(AUR中) ttf-arphic-ukai ttf-arphic-uming ttf-fireflysung
系统字体将默认安装到/usr/share/fonts,如果你没有root权限或者只打算自己使用某些字体,你可以直接复制这些字体到~/.fonts(或者其他)目录下面,并把该路径加入/etc/fonts/local.conf中,参见后面章节。
参考网点:
fontconfig设置
安装好字体以后,你可能对中文字体的显示不太满意。这时需要对fontconfig做某些设置。你可以在~/.fonts.conf中设定,也可以在/etc/fonts/conf.d中设定。
重排字型的显示顺序
Serifs字型
<alias> <family>serif</family> <prefer> <family>Bitstream Vera Serif</family> <family>Times New Roman</family> <family>Nimbus Roman No9 L</family> <family>Luxi Serif</family> <family>Times</family> <family>WenQuanYi Bitmap Song</family> <family>AR PL ShanHeiSun Uni</family> <family>AR PL New Sung</family> <family>AR PL ZenKai Uni</family> <family>Ming(ISO10646)</family> <family>Kochi Mincho</family> <family>Baekmuk Batung</family> </prefer> </alias>
Sans字型
<alias> <family>sans-serif</family> <prefer> <family>Bitstream Vera Sans</family> <family>Verdana</family> <family>Arial</family> <family>Tahoma</family> <family>WenQuanYi Bitmap Song</family> <family>AR PL ShanHeiSun Uni</family> <family>AR PL New Sung</family> <family>AR PL ZenKai Uni</family> <family>Helvetica</family> <family>Ming(ISO10646)</family> <family>Kochi Gothic</family> <family>Baekmuk Dotum</family> </prefer> </alias>
Mononspace字型
<alias> <family>monospace</family> <prefer> <family>Bitstream Vera Sans Mono</family> <family>Courier</family> <family>Courier New</family> <family>Andale Mono</family> <family>Luxi Mono</family> <family>Nimbus Mono L</family> <family>WenQuanYi Bitmap Song</family> <family>AR PL ShanHeiSun Uni</family> <family>AR PL New Sung</family> <family>AR PL ZenKai Uni</family> <family>Ming(ISO10646)</family> <family>Kochi Mincho</family> <family>Baekmuk Batung</family> </prefer> </alias>
关闭小号字体的AA(反锯齿)
对于比较小的字体,关闭小号字体的反锯齿,会更加清晰。
<match target="font" > <test compare="eq" name="family" qual="any" > <string>AR PL New Sung</string> <string>AR PL ShanHeiSun Uni</string> <string>AR PL ZenKai Uni</string> <string>AR PL Mingti2L Big5</string> <string>AR PL SungtiL Big5</string> <string>MingLiu</string> <string>PMingLiu</string> </test> <test compare="more_eq" name="pixelsize" > <double>8</double> </test> <test compare="less_eq" name="pixelsize" > <double>15</double> </test> <edit name="antialias" > <bool>false</bool> </edit> <edit name="hinting" > <bool>true</bool> </edit> </match>
Tips:可以到这里得到更详细的字体设置文档和完整的中文字体配置范例
参考文档
- Fontconfig用户手册 http://www.chinalinuxpub.com/read.php?wid=634
- 令Debian支援中文 http://wiki.linux.org.hk/w/Make_Debian_support_Chinese
- http://www.higherorder.org/wiki/Fontconfig
怎么输入中文?
安装相应的输入法 scim 或者 fcitx。推荐使用scim:
pacman -S scim-pinyin
简体中文的用户推荐:
scim-pinyin 智能拼音 scim-tables 五笔
繁体中文的用户推荐:
scim-chewing
要使用scim,还应该设置以下的环境变量(以scim为例),(可在xinitrc, .bashrc或.xprofile中设置)
export XIM="SCIM" export XMODIFIERS=@im=SCIM #设置scim为xim默认输入法 export GTK_IM_MODULE="scim" #设置scim为gtk程序默认的输入法 export QT_IM_MODULE="scim" #设置scim为qt程序默认的输入法 scim -d #使可以自动启动
已知问题:
- 由于SCIM的ABI兼容性问题,目前可能会造成一些软件拒绝运行,这些软件包括但不限于:Acrobat Reader, 直接从mozilla.org下载的firefox, thunderbird,以及realplay。权宜之计: 在程序的启动文件头输入:
Tip:为什么推荐使用SCIM?
- 因为到目前为止,SCIM是惟一的“傻瓜式”输入法(感谢作者付出的很多努力,最终让我们打包和维护相当的轻松,而且对于用户来说,也基本不需要什么设置)。
中文显示很模糊(淡),或没有中文粗体?
在正常情况下,gnome本身已经转由cairo+pango来渲染字体,不存在这个问题了,但是你很可能在浏览一些网页时,还会发生这些问题。
或者使用了下面的local.conf文件替换系统默认的local.conf文件。
cp local.conf /etc/fonts/
或者,自行编译fontconfig2.3.92以上的版本,并打开local.conf中的autohint
KDE环境:
其他环境:见上。
- 官方新版本的mozila firefox(大于1.5.0.1)已经使用cairo+pango,但是在某些网站时会相当的慢。
没有中文粗体解决方法:
把下面的配置加入/etc/fonts/local.conf
<!-- Synthetic emboldening for fonts that do not have bold face available --> <match target="font"> <!-- check to see if the font is just regular --> <test name="weight" compare="less_eq"> <const>medium</const> </test> <!-- check to see if the pattern requests bold --> <test target="pattern" name="weight" compare="more"> <const>medium</const> </test> <!-- set the embolden flag needed for applications using cairo, e.g. gucharmap, gedit, ... --> <edit name="embolden" mode="assign"> <bool>true</bool> </edit> <!-- set weight to bold needed for applications using Xft directly, e.g. Firefox, ... --> <edit name="weight" mode="assign"> <const>bold</const> </edit> </match>
如何显示影片的中文字幕?
mplayer
要使mplayer正确显示字幕,关键是要使字幕文件的编码和mplayer config里使用的编码相一致。字幕文件编码为gbk,则subcp=cp936;字幕文件编码为utf-8,则subcp=utf8。如果字幕文件编码为utf-8,而设置成subcp=cp936,则会出现部分乱码的情况。另一种更为简单的方法是设置成subcp=enca:zh:ucs-2,由enca负责字幕的编码显示问题。
修改~/.mplayer/config
font='文泉驿正黑' subcp=enca:zh:ucs-2
可以使用下面的命令手动加载字幕
mplayer xxx.avi -sub xxxxx.srt
同时,你还可以设置mplayer自动加载字幕。如果你无法在gmplayer的选项中找到这个选项(天知道你会有这样粗心),直接修改~/.mplayer/gui.conf如下:
sub_auto_load = "yes" sub_unicode = "yes" sub_pos = "100" sub_overlap = "no" sub_cp = "cp936" font_factor = "0.750000" font_encoding = "unicode"
- mplayer cvs(2005.12以后)已经使用了gtk2的界面,但是很遗憾的是并没有完全利用gtk2良好的国际支持,甚至没有使用gtk.filechooser。
- 正体中文 codepage 为 cp950。
SMPlayer
SMPlayer 是一个基于QT的MPlayer前端。显示中文字幕很方便。只要在设置对话框里设定缺省字幕编码和字体即可。而且立即生效,无需重新启动程序。
xine
xine也可以显示中文字幕,但需要制作自己的中文字体。具体可以参考 http://forum.ubuntu.org.cn/about2760.html
gstreamer
在totem 1.4.0,由于使用gstreamer0.10,应该是可以自动加载同名的srt字幕。
MP3文件在播放器中乱码
对于所有用gstreamer做后端的播放器,如Rhythmbox,totem,设置如下的环境变量后即可正确读取mp3中GBK编码的id3 tag。
export GST_ID3_TAG_ENCODING=GBK:UTF-8:GB18030 export GST_ID3V2_TAG_ENCODING=GBK:UTF-8:GB18030
对于Beep media player,可以在pefenrence->plugins->media中选中MPEG Audio plugin然后点击下方的Penfenrences,此时会出现一个对话框,选择title,将Disable ID3v2和Convert non-UTF8 ID3 tags to UTF8前的选择框选中。然后在ID3 encoding中填入 gbk。这样bmp就能正确显示GBK编码的ID3 tag。
Quod Libet播放器支持tag编辑及设置id3v2编码。可以在~/.quodlibet/config中设置
id3encoding = gbk
注意:Quod Libet默认支持utf8编码
最为彻底的解决方法为将编码为gbk的id3 tag转化为utf8编码。首先安装mutagen,然后利用下面的命令转化:
mid3iconv -e gbk test.mp3
windows分区下的中文文件是乱码?
如果使用了hal,应该是没有问题了,但是如果没有,请不妨试一下:
在/etc/rc.conf中的daemon一段中添加hal。
或者直接修改/etc/fstab,注意危险,你如果不懂,就不要学我:-)。如果locale是utf8,挂载windows分区时应该做如下设置
/dev/hdc5 / reiserfs defaults iocharset=utf8 0 0
如果locale是GBK,则应该是
iocharset=cp936
已知问题:
samba乱码
用Arch作为samba服务器时,在 /etc/samba/smb.conf 中加入下面一行就可以解决Windows客户端等乱码问题:
unix charset=gb2312
ftp乱码
很多ftp站点是GBK编码,如果使用UTF8的locale,下载的文件名可能会乱码。对于lftp,在.lftp/rc下做如下设置
set ftp:charset "gbk" set file:charset "UTF-8"
对于gftp,可以在.gftp/gftprc中做如下设置即可正确显示服务器端gbk编码的文件名
remote_charsets=gb2312
但下载下来的文件名仍然是乱码,此时需要打补丁。补丁地址为: http://www.teatime.com.tw/%7Etommy/linux/gftp_remote_charsets.patch
JAVA界面乱码
对于java 1.5来说(同样适用于java 1.6),只要在
/opt/java/jre/lib/fonts
中建立fallback目录,然后链接或拷贝若干中文字体到该目录就能使java程序正确显示中文。例如,在已经安装 jre 和ttf-fireflysung 的情况下,执行下面的命令即可:
ln -s /usr/share/fonts/TTF/odosung.ttc /opt/java/jre/lib/fonts/fallback/ cd /opt/java/jre/lib/fonts/fallback/ #以下两个命令要使用root权限 mkfontdir mkfontscale
如果是openjdk6 则需要复制这个文件:/usr/lib/jvm/java-6-openjdk/jre/lib/fontconfig.properties.src 到/usr/lib/jvm/java-6-openjdk/jre/lib/fontconfig.properties,并修改这个文件中的字体位置,因为文泉绎地址指错了。
Doc文件无法打开或显示不正常?
安装openoffice。
#pacman -Sy openoffice-base openoffice-zh-CN
- 如果你打算使用英文版的openoffice,你只需要安装openoffice-base包。
- 正体中文包 openoffice-zh_tw。
- 开启 amd_64 的 openoffice 时可能发生异常,此时可安装 libsndfile 进行修正。
- 目前,由于go-openoffice扩充了OpenOffice.org的功能(比如,完善了许多微软私有文档格式的兼容性),因此,我们推荐您使用go-openoffice。
正确显示中文PDF文件
Tips: 要正常显示所有的中文pdf(除了自定义字库外,比如文渊阁版四库全书),都需要安装poppler-data 因为,linux下pdf大都以Poppler为解析PDF后端的,而Poppler已经提供了包含中文字体在内的包poppler-data,所以只要安装poppler-data,中文显示问题就可解决。
okular
pacman -S kdegraphics-okular
arcobat
安装AUR里的acroread,并且安装相应中文包即可。
Evince
pacman -S evince
xpdf
pacman -S xpdf-chinese-simplified
其他可用的pdf阅读器
比如foxit
另外的问题
在中国知网、万方数据库上下载的一些论文没有明确指定字体,系统选用英文字体显示它们,于是导致中文无法显示。要解决这一问题,需要修改系统的字体配置, 下面的方法更加建议使用:修改/etc/fonts/conf.d/65-nonlatin.conf 把里面自己想使用的字体位置提到前面就可以了。
Tips: 下面的建议是以前对字体配置文件不熟悉的时候经常使用的方法,现在建议不要采纳(虽然网上绝大部分流行的教程都是这么做的)
==================================================================== 一种比较简便的方法是直接删除/etc/fonts/conf.d/49-sansserif.conf:
- rm /etc/fonts/conf.d/49-sansserif.conf
建议不要这么做,也可以将/etc/fonts/conf.d/49-sansserif.conf的
<edit name="family" mode="append_last">
<string>sans-serif</string>
</edit>
改成
<edit name="family" mode="append_last">
<string>文泉驿正黑</string>
</edit>
其中“文泉驿正黑”也可被其它所安装的中文字体代替。
=======================================================================
vim乱码
如果locale是utf8编码,用vim显示gbk编码的文件可能会乱码。因此需要在.virc做如下设置
"Chinese GBK support set fileencodings=utf8,gbk
Latex中如何使用中文
首先需要安装CJK包,然后需要安装合适的字体。具体可以参考
如何使用字典
首先请先安装stardict
pacman -S stardict
stardict默认是不带字典的,需要去http://stardict.sourceforge.net/ 下载字典安装。安装方法如下
tar -xjvf testdict.tar.bz2 mv testdict /usr/share/stardict/dic
推荐使用
- xdict英汉字典
- Merriam Webster 10th dictionary
- 牛津现代英汉双解辞典(正体中文)
- 朗道英汉词典(正体中文)