Difference between revisions of "Localization/Simplified Chinese (简体中文)"

From ArchWiki
Jump to navigation Jump to search
Line 1: Line 1:
{{Warning|我正在修改本文,请不要编辑。}}
 
 
 
[[Category:General (简体中文)]]
 
[[Category:General (简体中文)]]
 
[[Category:简体中文]]
 
[[Category:简体中文]]
 +
 +
{{Article summary start|摘要}}
 +
{{Article summary text|Archlinux的中文化。}}
 +
{{Article summary heading|相关阅读}}
 +
{{Article summary wiki|Official Arch Linux Install Guide (简体中文)}}
 +
{{Article summary wiki|General Recommendations (简体中文)}}
 +
{{Article summary wiki|Beginners' Guide (简体中文)}}
 +
{{Article summary text|[http://wiki.ubuntu.org.cn/%E4%B8%AD%E6%96%87%E6%94%AF%E6%8C%81 Ubuntu中文支持]}}
 +
{{Article summary end}}
  
 
依据“[[Arch 之道 (简体中文)|Arch 之道]]”:我们不会为你配置好一切,因为“喜好和需求,每人皆不同”,但是会尽量确保让配置时方便和简单。事实上,甚至远比使用某些Linux中文版本容易。
 
依据“[[Arch 之道 (简体中文)|Arch 之道]]”:我们不会为你配置好一切,因为“喜好和需求,每人皆不同”,但是会尽量确保让配置时方便和简单。事实上,甚至远比使用某些Linux中文版本容易。
 
第一次使用Arch Linux时,用户通常会遇上这些(典型)的问题:
 
  
==系统中文支持==
+
本文尽可能提供了各种常见软件的中文化指导。但实际应用中,你可能遇到各种各样的麻烦。遇到了麻烦,不要气馁,解决问题本身就是一种乐趣。你可以通过各种渠道寻求帮助:
 +
*Google等搜索引擎
 +
*[https://bbs.archlinux.org/ Arch官方论坛]
 +
*[http://forum.ubuntu.org.cn/viewforum.php?f=155 Ubuntu中文论坛Arch专区]
 +
*[http://www.linuxsir.org/bbs/forum96.html Linuxsir论坛Arch讨论区]
 +
 
 +
==基本中文支持==
 
要正确显示中文,必需设置正确的locale并安装合适的中文字体。
 
要正确显示中文,必需设置正确的locale并安装合适的中文字体。
  
===locale设定===
+
===locale设置===
 +
===安装中文locale===
 
Linux中通过locale来设置程序运行的不同环境。常用的中文locale有(最直观的分别是可显示字的数量):
 
Linux中通过locale来设置程序运行的不同环境。常用的中文locale有(最直观的分别是可显示字的数量):
 
  zh_CN.GB2312
 
  zh_CN.GB2312
Line 17: Line 29:
 
  zh_CN.GB18030
 
  zh_CN.GB18030
 
  zh_CN.UTF-8
 
  zh_CN.UTF-8
推荐使用UTF8的locale。需要注意的是,对于glibc(>=2.3.6),需要修改/etc/locale.gen文件来设定系统中可以使用的locale
+
 
 +
推荐使用UTF8的locale。对于glibc(>=2.3.6),需要修改{{filename|/etc/locale.gen}}文件来设定系统中可以使用的locale:
 
  en_US.UTF8 UTF-8
 
  en_US.UTF8 UTF-8
 
  zh_CN.UTF8 UTF-8
 
  zh_CN.UTF8 UTF-8
Line 23: Line 36:
 
  zh_CN.GB2312 GB2312
 
  zh_CN.GB2312 GB2312
 
  zh_CN.GB18030 GB18030
 
  zh_CN.GB18030 GB18030
 +
 
然后执行locale-gen命令,便可以在系统中使用这些locale。可以通过locale命令来查看当前使用的locale:
 
然后执行locale-gen命令,便可以在系统中使用这些locale。可以通过locale命令来查看当前使用的locale:
 
  locale
 
  locale
 +
 
可以通过locale命令来查看目前可以使用的locale:
 
可以通过locale命令来查看目前可以使用的locale:
 
  locale -a
 
  locale -a
  
Archlinux中,通过{{filename|rc.conf}}文件可以设置全局有效的locale:
+
===启用中文locale===
 +
Archlinux中,通过{{filename|rc.conf}}文件设置全局有效的locale:
 
  LOCALE=en_US.UTF-8
 
  LOCALE=en_US.UTF-8
{{Note|不推荐这里设置中文locale,会导致终端乱码。}}
+
{{Note|不推荐这里设置中文locale,会导致TTY终端乱码。在终端界面下也可以显示和输入中文,但需要安装cce、zhcon或fbterm。}}
  
对于特定用户,还可以在.bashrc或.xprofile中设置自己的用户环境,不同之处在于:
+
对于特定用户,还可以在{{filename|~/.bashrc}}、{{filename|~/.xinitrc}}或{{filename|~/.xprofile}}中设置自己的用户环境。不同之处在于:
 
*.bashrc:  每次'''终端登录时'''读取并运用里面的设置。
 
*.bashrc:  每次'''终端登录时'''读取并运用里面的设置。
 
*.xinitrc:  每次'''startx启动X界面时'''读取并运用里面的设置
 
*.xinitrc:  每次'''startx启动X界面时'''读取并运用里面的设置
 
*.xprofile: 每次'''使用gdm等图形登录时'''读取并运用里面的设置
 
*.xprofile: 每次'''使用gdm等图形登录时'''读取并运用里面的设置
 
在终端(文字)界面下也可以显示和输入中文,但需要安装cce、zhcon或fbterm。
 
  
 
====单独在图形界面启用中文locale====
 
====单独在图形界面启用中文locale====
Line 47: Line 61:
 
{{Note|该方法适用于slim或者无登陆管理器的用户,GDM和KDM用户可以在Gnome或KDE设置中选择语言。}}
 
{{Note|该方法适用于slim或者无登陆管理器的用户,GDM和KDM用户可以在Gnome或KDE设置中选择语言。}}
  
===安装中文字体===
+
===中文字体===
 +
====安装字体====
 
除了设置好locale,还需要安装中文字体:
 
除了设置好locale,还需要安装中文字体:
 
  pacman -S wqy-zenhei
 
  pacman -S wqy-zenhei
Line 64: Line 79:
 
另见:[http://wiki.debian.org.hk/w/Where_can_I_find_fonts_for_GNU/Linux]
 
另见:[http://wiki.debian.org.hk/w/Where_can_I_find_fonts_for_GNU/Linux]
  
== 中文输入法设置 ==
+
====中文字体配置====
安装相应的输入法[[ibus (简体中文)|ibus]]、[[Fcitx (简体中文)|fcitx]]或[[Smart Common Input Method platform (简体中文)|scim]]。具体安装配置参见各自条目。
 
{{Note|scim现在维护滞后,不推荐使用。}}
 
 
 
== 中文字体配置 ==
 
 
安装好字体以后,字体显示效果可能不堪入目。需要对fontconfig和某些程序进行调整。
 
安装好字体以后,字体显示效果可能不堪入目。需要对fontconfig和某些程序进行调整。
  
Line 75: Line 86:
 
另外每个程序中可以设置不同的默认字体,比如Arial或者Tohamo。这些字体的属性由fontconfig控制。所以当字体显示不满意时,首先需要判断是调整字体的种类还是字体的属性。
 
另外每个程序中可以设置不同的默认字体,比如Arial或者Tohamo。这些字体的属性由fontconfig控制。所以当字体显示不满意时,首先需要判断是调整字体的种类还是字体的属性。
  
===单个程序的字型选择===
+
====fontconfig设置====
浏览器中正文的字体可以设为serif。serif和san serif的区别可以参考 (http://www.shocr.com/serif-vs-sans-serif/)。
 
 
 
===fontconfig设置===
 
 
fontconfig的设置文件是{{filename|~/.fonts.conf}}(用户)或者{{filename|/etc/fonts/conf.d}}(全局)。推荐修改前者。
 
fontconfig的设置文件是{{filename|~/.fonts.conf}}(用户)或者{{filename|/etc/fonts/conf.d}}(全局)。推荐修改前者。
  
Line 90: Line 98:
 
*[http://www.higherorder.org/wiki/Fontconfig]
 
*[http://www.higherorder.org/wiki/Fontconfig]
  
 +
===中文输入法===
 +
常用的中文输入法平台有[[ibus (简体中文)|ibus]]、[[Fcitx (简体中文)|fcitx]]和[[Smart Common Input Method platform (简体中文)|scim]]。具体安装配置参见各自条目。
 +
{{Note|scim现在维护滞后,不推荐使用。}}
 +
 +
==软件中文化配置==
 +
===桌面环境===
 +
除[[KDE (简体中文)|KDE]]外,各大桌面环境已经包含了中文语言文件。[[KDE (简体中文)|KDE]]的中文包需要额外安装:
 +
pacman -S kde-l10n-zh_cn
 +
{{Note|LXDE组件目前只有繁体中文支持。}}
 +
 +
===Firefox===
 +
简体中文用户安装:
 +
pacman -S firefox-i18n-zh-cn
 +
繁体中文用户安装:
 +
pacman -S firefox-i18n-zh-tw
 +
 +
===Libreoffice===
 +
简体中文用户安装:
 +
pacman -S libreoffice-zh-CN
 +
繁体中文用户安装:
 +
pacman -S libreoffice-zh-TW
 +
 +
===Koffice===
 +
简体中文用户安装:
 +
pacman -S koffice-l10n-zh_cn
 +
繁体中文用户安装:
 +
pacman -S koffice-l10n-zh_tw
 +
 +
===PDF查看器===
 +
多数PDF查看器已经支持中文。但也有部分需要安装额外的语言包:
 +
 +
Arcobat:
 +
AUR版本的中文包为{{Package AUR|acroread-chs}}、{{Package AUR|acroread-cht}}。
 +
 +
xpdf:
 +
pacman -S xpdf-chinese-simplified
 +
 +
===Java===
 +
对于Sun Java用户,在{{filename|/opt/java/jre/lib/fonts}}中建立fallback目录,然后链接或拷贝若干中文字体到该目录就能使java程序正确显示中文。例如,在已经安装jre和ttf-fireflysung 的情况下,使用root权限执行下面的命令即可:
 +
ln -s /usr/share/fonts/TTF/odosung.ttc /opt/java/jre/lib/fonts/fallback/
 +
cd /opt/java/jre/lib/fonts/fallback/
 +
mkfontdir
 +
mkfontscale
 +
 +
如果是openjdk6,需要复制{{filename|/usr/lib/jvm/java-6-openjdk/jre/lib/fontconfig.properties.src}}到{{filename|/usr/lib/jvm/java-6-openjdk/jre/lib/fontconfig.properties}},并修改这个文件中的字体位置,因为文泉驿的地址指错了。
 +
 +
===vim===
 +
如果locale是utf8编码,用vim打开其他中文编码的文件可能会乱码。需要在{{filename|~/.vimrc}}做如下设置:
 +
set fileencodings=utf8,cp936,gb18030,big5
 +
 +
===中文视频字幕===
 +
====Mplayer====
 +
要使mplayer正确显示字幕,关键是要使字幕文件的编码和mplayer config里使用的编码相一致。字幕文件编码为gbk,则subcp=cp936;字幕文件编码为utf-8,则subcp=utf8。如果字幕文件编码为utf-8,而设置成subcp=cp936,则会出现部分乱码的情况。另一种更为简单的方法是设置成subcp=enca:zh:ucs-2,由enca负责字幕的编码显示问题。
 +
 +
修改{{filename|~/.mplayer/config}}:
 +
font='文泉驿正黑'
 +
subcp=enca:zh:ucs-2
 +
 +
使用下面的命令手动加载字幕:
 +
mplayer xxx.avi -sub xxxxx.srt
 +
 +
如果使用图形前端(比如SMPlayer),会更简单一些,只要在设置对话框里设定缺省字幕编码和字体即可。
 +
 +
====xine====
 +
xine也可以显示中文字幕,但需要制作自己的中文字体。具体可以参考:[http://forum.ubuntu.org.cn/about2760.html]。
 +
 +
====gstreamer====
 +
在totem 1.4.0,由于使用gstreamer0.10,应该是可以自动加载同名的srt字幕。
 +
 +
===Latex===
 +
首先需要安装CJK包,然后需要安装合适的字体。具体可以参考:[http://www.ctex.org]。
 +
 +
==其他中文化问题==
 
====中文显示模糊或没有中文粗体====
 
====中文显示模糊或没有中文粗体====
 
正常情况下,gnome本身已经转由cairo+pango来渲染字体,不存在这个问题了。但仍可能在浏览一些网页时发生这些问题。
 
正常情况下,gnome本身已经转由cairo+pango来渲染字体,不存在这个问题了。但仍可能在浏览一些网页时发生这些问题。
Line 126: Line 207:
 
  </pre>
 
  </pre>
  
==中文字幕的显示==
+
===MP3文件标签乱码===
===mplayer===
+
对于用gstreamer做后端的播放器,如Rhythmbox,totem,设置如下的环境变量后即可正确读取mp3中GBK编码的ID3 tag:
要使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字幕。
 
 
 
==中文乱码==
 
 
 
===vim乱码===
 
如果locale是utf8编码,用vim显示gbk编码的文件可能会乱码。因此需要在.virc做如下设置
 
"Chinese GBK support
 
set fileencodings=utf8,gbk
 
 
 
==='''MP3文件在播放器中乱码'''===
 
对于所有用gstreamer做后端的播放器,如Rhythmbox,totem,设置如下的环境变量后即可正确读取mp3中GBK编码的id3 tag。
 
 
  export GST_ID3_TAG_ENCODING=GBK:UTF-8:GB18030
 
  export GST_ID3_TAG_ENCODING=GBK:UTF-8:GB18030
 
  export GST_ID3V2_TAG_ENCODING=GBK:UTF-8:GB18030
 
  export GST_ID3V2_TAG_ENCODING=GBK:UTF-8:GB18030
Line 172: Line 214:
 
对于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。
 
对于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中设置
+
Quod Libet播放器支持tag编辑及设置ID3v2编码。可以在~/.quodlibet/config中设置
 
  id3encoding = gbk
 
  id3encoding = gbk
 
注意:Quod Libet默认支持utf8编码
 
注意:Quod Libet默认支持utf8编码
  
最为彻底的解决方法为将编码为gbk的id3 tag转化为utf8编码。首先安装mutagen,然后利用下面的命令转化:
+
最为彻底的解决方法为将编码为gbk的id3 tag转化为utf8编码。首先安装mutagen,然后利用下面的命令转换:
  mid3iconv -e gbk test.mp3
+
  mid3iconv -e gbk XXX.mp3
 
 
=== '''windows分区下的中文文件名乱码''' ===
 
  
一般是因为挂载的字符集与locale不同,可以修改/etc/fstab(如果不了解请仔细阅读相关文档)。如果locale是utf8,例如:
+
===Windows分区下的中文文件名乱码===
  /dev/hdc5 /media/win ntfs-3g defaults iocharset=utf8 0 0
+
一般是因为挂载的字符集与locale不同,可以修改/etc/fstab(如果不了解请仔细阅读相关文档)。如果locale是utf8,修改为:
 +
  /dev/sdxx /media/win ntfs defaults,iocharset=utf8 0 0
  
如果locale是GBK,则应该是
+
如果locale是GBK,则应该是:
  iocharset=cp936
+
  /dev/sdxx /media/win ntfs defaults,iocharset=cp936 0 0
  
==='''samba乱码'''===
+
===Samba乱码===
用Arch作为samba服务器时,在 /etc/samba/smb.conf 中加入下面一行就可以解决Windows客户端等乱码问题:
+
用Arch作为Samba服务器时,在{{filename|/etc/samba/smb.conf}}中加入下面一行就可以解决Windows客户端乱码问题:
  unix charset=gb2312
+
unix charset=gb2312
  
==='''ftp乱码'''===
+
===ftp乱码===
很多ftp站点是GBK编码,如果使用UTF8的locale,下载的文件名可能会乱码。对于lftp,在.lftp/rc下做如下设置
+
很多ftp站点是GBK编码。如果使用UTF8的locale,下载的文件名可能会乱码。对于lftp,在{{filename|.lftp/rc}}下做如下设置:
 
  set ftp:charset "gbk"
 
  set ftp:charset "gbk"
 
  set file:charset "UTF-8"
 
  set file:charset "UTF-8"
对于gftp,可以在.gftp/gftprc中做如下设置即可正确显示服务器端gbk编码的文件名
+
 
 +
对于gftp,可以在{{filename|.gftp/gftprc}}中做如下设置即可:
 
  remote_charsets=gb2312
 
  remote_charsets=gb2312
但下载下来的文件名仍然是乱码,此时需要打补丁。补丁地址为:
+
 
 +
但下载下来的文件名仍然是乱码,需要打补丁编译。补丁地址为:
 
http://www.teatime.com.tw/%7Etommy/linux/gftp_remote_charsets.patch
 
http://www.teatime.com.tw/%7Etommy/linux/gftp_remote_charsets.patch
  
===JAVA界面乱码===
+
===安装使用星际译王词典软件===
对于java 1.5来说(同样适用于java 1.6),只要在
+
首先先安装{{Package Official|stardict}}软件包:
/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 -Syu 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>
 
 
 
其中“文泉驿正黑”也可被其它所安装的中文字体代替。
 
 
 
=======================================================================
 
 
 
==Latex中如何使用中文==
 
首先需要安装CJK包,然后需要安装合适的字体。具体可以参考
 
*http://www.ctex.org
 
*http://www.newsmth.net 的Tex版
 
 
 
==如何使用字典==
 
首先请先安装stardict
 
 
  pacman -S stardict
 
  pacman -S stardict
stardict默认是不带字典的,需要去http://stardict.sourceforge.net/ 下载字典安装。安装方法如下
+
stardict默认是不带字典的,需要去[http://stardict.sourceforge.net/]下载字典安装。安装方法如下:
 
  tar -xjvf testdict.tar.bz2
 
  tar -xjvf testdict.tar.bz2
 
  mv testdict /usr/share/stardict/dic
 
  mv testdict /usr/share/stardict/dic
推荐使用
+
 
 +
推荐使用:
 
*xdict英汉字典  
 
*xdict英汉字典  
 
*Merriam Webster 10th dictionary
 
*Merriam Webster 10th dictionary
 
*牛津现代英汉双解辞典(正体中文)
 
*牛津现代英汉双解辞典(正体中文)
 
*朗道英汉词典(正体中文)
 
*朗道英汉词典(正体中文)

Revision as of 13:54, 18 June 2011


Template:Article summary start Template:Article summary text Template:Article summary heading Template:Article summary wiki Template:Article summary wiki Template:Article summary wiki Template:Article summary text Template:Article summary end

依据“Arch 之道”:我们不会为你配置好一切,因为“喜好和需求,每人皆不同”,但是会尽量确保让配置时方便和简单。事实上,甚至远比使用某些Linux中文版本容易。

本文尽可能提供了各种常见软件的中文化指导。但实际应用中,你可能遇到各种各样的麻烦。遇到了麻烦,不要气馁,解决问题本身就是一种乐趣。你可以通过各种渠道寻求帮助:

基本中文支持

要正确显示中文,必需设置正确的locale并安装合适的中文字体。

locale设置

安装中文locale

Linux中通过locale来设置程序运行的不同环境。常用的中文locale有(最直观的分别是可显示字的数量):

zh_CN.GB2312
zh_CN.GBK
zh_CN.GB18030
zh_CN.UTF-8

推荐使用UTF8的locale。对于glibc(>=2.3.6),需要修改Template:Filename文件来设定系统中可以使用的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命令,便可以在系统中使用这些locale。可以通过locale命令来查看当前使用的locale:

locale

可以通过locale命令来查看目前可以使用的locale:

locale -a

启用中文locale

Archlinux中,通过Template:Filename文件设置全局有效的locale:

LOCALE=en_US.UTF-8
Note: 不推荐这里设置中文locale,会导致TTY终端乱码。在终端界面下也可以显示和输入中文,但需要安装cce、zhcon或fbterm。

对于特定用户,还可以在Template:FilenameTemplate:FilenameTemplate:Filename中设置自己的用户环境。不同之处在于:

  • .bashrc: 每次终端登录时读取并运用里面的设置。
  • .xinitrc: 每次startx启动X界面时读取并运用里面的设置
  • .xprofile: 每次使用gdm等图形登录时读取并运用里面的设置

单独在图形界面启用中文locale

不推荐Template:Filename使用全局中文locale,会导致终端乱码。

如前面所说,可以在Template:FilenameTemplate:Filename单独设置中文locale。添加如下内容到上述文件最前端注释之后(如果不确定使用哪个文件,可以都添加):

export LANG=zh_CN.UTF-8
export LC_ALL="zh_CN.UTF-8"
Note: 该方法适用于slim或者无登陆管理器的用户,GDM和KDM用户可以在Gnome或KDE设置中选择语言。

中文字体

安装字体

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

pacman -S wqy-zenhei

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

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

另见:[1]

中文字体配置

安装好字体以后,字体显示效果可能不堪入目。需要对fontconfig和某些程序进行调整。

fontconfig是字体选择的接口,你可以用它去控制单个字体或者字体族的属性,比如hint或者autohint。

另外每个程序中可以设置不同的默认字体,比如Arial或者Tohamo。这些字体的属性由fontconfig控制。所以当字体显示不满意时,首先需要判断是调整字体的种类还是字体的属性。

fontconfig设置

fontconfig的设置文件是Template:Filename(用户)或者Template:Filename(全局)。推荐修改前者。

关于中文字体设置,参见:Font (简体中文)Font Configuration (简体中文)

Font Configuration (简体中文)/中文字体配置范例提供了中文字体fontconfig示范。

另见:

中文输入法

常用的中文输入法平台有ibusfcitxscim。具体安装配置参见各自条目。

Note: scim现在维护滞后,不推荐使用。

软件中文化配置

桌面环境

KDE外,各大桌面环境已经包含了中文语言文件。KDE的中文包需要额外安装:

pacman -S kde-l10n-zh_cn
Note: LXDE组件目前只有繁体中文支持。

Firefox

简体中文用户安装:

pacman -S firefox-i18n-zh-cn

繁体中文用户安装:

pacman -S firefox-i18n-zh-tw

Libreoffice

简体中文用户安装:

pacman -S libreoffice-zh-CN

繁体中文用户安装:

pacman -S libreoffice-zh-TW

Koffice

简体中文用户安装:

pacman -S koffice-l10n-zh_cn

繁体中文用户安装:

pacman -S koffice-l10n-zh_tw

PDF查看器

多数PDF查看器已经支持中文。但也有部分需要安装额外的语言包:

Arcobat: AUR版本的中文包为Template:Package AURTemplate:Package AUR

xpdf:

pacman -S xpdf-chinese-simplified

Java

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

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

如果是openjdk6,需要复制Template:FilenameTemplate:Filename,并修改这个文件中的字体位置,因为文泉驿的地址指错了。

vim

如果locale是utf8编码,用vim打开其他中文编码的文件可能会乱码。需要在Template:Filename做如下设置:

set fileencodings=utf8,cp936,gb18030,big5

中文视频字幕

Mplayer

要使mplayer正确显示字幕,关键是要使字幕文件的编码和mplayer config里使用的编码相一致。字幕文件编码为gbk,则subcp=cp936;字幕文件编码为utf-8,则subcp=utf8。如果字幕文件编码为utf-8,而设置成subcp=cp936,则会出现部分乱码的情况。另一种更为简单的方法是设置成subcp=enca:zh:ucs-2,由enca负责字幕的编码显示问题。

修改Template:Filename

font='文泉驿正黑'
subcp=enca:zh:ucs-2

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

mplayer xxx.avi -sub xxxxx.srt

如果使用图形前端(比如SMPlayer),会更简单一些,只要在设置对话框里设定缺省字幕编码和字体即可。

xine

xine也可以显示中文字幕,但需要制作自己的中文字体。具体可以参考:[3]

gstreamer

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

Latex

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

其他中文化问题

中文显示模糊或没有中文粗体

正常情况下,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>
 

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 XXX.mp3

Windows分区下的中文文件名乱码

一般是因为挂载的字符集与locale不同,可以修改/etc/fstab(如果不了解请仔细阅读相关文档)。如果locale是utf8,修改为:

/dev/sdxx /media/win ntfs defaults,iocharset=utf8 0 0

如果locale是GBK,则应该是:

/dev/sdxx /media/win ntfs defaults,iocharset=cp936 0 0

Samba乱码

用Arch作为Samba服务器时,在Template:Filename中加入下面一行就可以解决Windows客户端乱码问题:

unix charset=gb2312

ftp乱码

很多ftp站点是GBK编码。如果使用UTF8的locale,下载的文件名可能会乱码。对于lftp,在Template:Filename下做如下设置:

set ftp:charset "gbk"
set file:charset "UTF-8"

对于gftp,可以在Template:Filename中做如下设置即可:

remote_charsets=gb2312

但下载下来的文件名仍然是乱码,需要打补丁编译。补丁地址为: http://www.teatime.com.tw/%7Etommy/linux/gftp_remote_charsets.patch

安装使用星际译王词典软件

首先先安装Template:Package Official软件包:

pacman -S stardict

stardict默认是不带字典的,需要去[5]下载字典安装。安装方法如下:

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

推荐使用:

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