分享

Archlinux中文化

 用勿龍潛 2011-09-07
Archlinux中文化
         --搞自Arch Linux wiki
第一次使用ArchLinux时,用户通常会遇上这些(典型)的问题:

Contents

[hide]

[edit] 怎么显示中文的界面?

要正确实现中文,必需设置正确的locale和安装合适的中文字体。

[edit] locale的设定

Linux中通过locale来设置程序运行的不同环境。一般常用的中文locale有:

zh_CN.GBK
zh_CN.GB2312
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。更多的locale信息可以参见:

[edit] 安装中文字体

除了设置好locale,你还需要安装中文字体:

pacman -S ttf-arphic-uming

常用的免费(GPL或兼容版权)中文字体有

ttf-arphic-ukai
ttf-arphic-uming
ttf-fireflysung

另外文泉驿的中文点阵字体也非常不错,你可以从http://www. 上的Archlinux版上下载文泉驿点阵字体的PKGBUILD来自行安装。

系统字体将默认安装到/usr/share/fonts,如果你没有root权限或者只打算自己使用某些字体,你可以直接复制这些字体到.fonts(或者其他)目录下面,并把该路径加入/etc/fonts/local.conf中,参见后面章节。

已知问题:

  • 官方软件库中没有文泉驿字体包,你需要自己下载。
  • ttf-fireflysung错误的依赖了xorg-clients-utils而不是xorg-fonts-utiles,参见bug报告:

参考网点:

[edit] fontconfig设置

安装好字体以后,你可能对中文自己的显示不太满意。这时需要对fontconfig做某些设置。你可以在~/.fonts.conf中设定,也可以在/etc/fonts/conf.d中设定。

[edit] 重排字型的显示顺序

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>

[edit] 关闭小号字体的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:可以到这里得到更详细的字体设置文档和完整的中文字体配置范例

参考文档

[edit] 怎么输入中文?

安装相应的输入法 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为gtk程序默认的输入法
export XIM_PROGRAM="scim -d" #使可以自动启动

已知问题:

  • 由于SCIM的ABI兼容性问题,目前可能会造成一些软件拒绝运行,这些软件包括但不限于:Acrobat Reader, openoffice,直接从mozilla.org下载的firefox, thunderbird,以及realplay。权宜之计: 在程序的启动文件头输入:
  • 目前scim在QT程序中还不能做到光标跟随

Tip:为什么推荐使用SCIM?

  • 因为到目前为止,SCIM是惟一的“傻瓜式”输入法(感谢作者付出的很多努力,最终让我们打包和维护相当的轻松,而且对于用户来说,也基本不需要什么设置)。

[edit] 中文显示很模糊(淡),或没有中文粗体?

在正常情况下,gnome本身已经转由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>

或者使用了下面的local.conf文件替换系统默认的local.conf文件。

cp local.conf /etc/fonts/ 

或者,自行编译fontconfig2.3.92以上的版本,并打开local.conf中的autohint

KDE环境:对不起,我不知道,我已经超过1年多没有用KDE了。欢迎各位的补充其他环境:见上。

  • 官方新版本的mozila firefox(大于1.5.0.1)已经使用cairo+pango,但是在某些网站时会相当的慢。

[edit] 如何显示影片的中文字幕?

[edit] mplayer

修改~/.mplayer/config

font=/usr/share/fonts/TTF/uming.ttf
subcp=cp936

可以使用下面的命令手动加载字幕

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。

[edit] SMPlayer

SMPlayer 是一个基于QT的MPlayer前端。显示中文字幕很方便。只要在设置对话框里设定缺省字幕编码和字体即可。而且立即生效,无需重新启动程序。

[edit] xine

xine也可以显示中文字幕,但需要制作自己的中文字体。具体可以参考 http://forum./about2760.html

[edit] gstreamer

在totem 1.4.0,由于使用gstreamer0.10,应该是可以自动加载同名的srt字幕。

[edit] 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

[edit] windows分区下的中文文件是乱码?

如果使用了hal,应该是没有问题了,但是如果没有,请不妨试一下:

在/etc/rc.conf中的daemon一段中添加hal。

或者直接修改/etc/fstab,注意危险,你如果不懂,就不要学我:-)。如果locale是utf8,挂载windows分区时应该做如下设置

/dev/hdc5 / reiserfs defaults iocharset=utf8 0 0

如果locale是GBK,则应该是

iocharset=cp936 

已知问题:

[edit] samba乱码

用Arch作为samba服务器时,在 /etc/samba/smb.conf 中加入下面一行就可以解决Windows客户端等乱码问题:

 unix charset=gb2312

[edit] 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./%7Etommy/linux/gftp_remote_charsets.patch

[edit] JAVA界面乱码

对于java 1.5来说,只要在

/opt/java/jre/lib/fonts

中建立fallback目录,然后链接或拷贝若干中文字体到该目录就能使java程序正确显示中文。例如,再已经安装 jre 和ttf-fireflysung 的情况下,执行下面的命令即可:

ln -s /usr/share/fonts/TTF/odosung.ttc /opt/java/jre/lib/fonts/fallback/

[edit] Doc文件无法打开或显示不正常?

安装openoffice。

pacman -S openoffice-zh_cn
  • 如果你打算使用英文版的openoffice,你只需要安装openoffice-base包。
  • 正体中文包 openoffice-zh_tw。
  • 开启 amd_64 的 openoffice 时可能发生异常,此时可安装 libsndfile 进行修正。

已知问题:官方库中的openoffice

[edit] 正确显示中文PDF文件

[edit] Evince

pacman -S evince xpdf-chinese-simplified

[edit] xpdf

pacman -S xpdf-chinese-simplified

[edit] kpdf

[edit] arcobat

安装AUR里的acroread7-chsfont即可。

Tips: Evince,Xpdf,Kpdf都能正确显示大部分中文PDF文件,但是一些没有内嵌中文字体的PDF文件需要CMap文件, 文本编码, 和其他各种配置信息等才能正确显示。这些附加信息包含在xpdf-chinese-simplified中,xpdf-chinese- simplified可以不依赖Xpdf而独立安装,但是Arch 中 xpdf-chinese-simplified依赖于Xpdf这个包,这个依赖性的处理不太合理,用户可以自行修改。或者给包维护者提交解决方法

[edit] vim乱码

如果locale是utf8编码,用vim显示gbk编码的文件可能会乱码。因此需要在.vimrc做如下设置

"Chinese GBK support
set fileencodings=utf8,gbk

[edit] Latex中如何使用中文

首先需要安装CJK包,然后需要安装合适的字体。具体可以参考

[edit] 如何使用字典

首先请先安装stardict

pacman -S stardict

stardict默认是不带字典的,需要去http://stardict./ 下载字典安装。安装方法如下

tar -xjvf testdict.tar.bz2
mv testdict /usr/share/stardict/dic

推荐使用

  • xdict英汉字典
  • Merrian Webster 10th dictionary
  • 牛津现代英汉双解辞典(正体中文)
  • 朗道英汉词典(正体中文)

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多