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

From ArchWiki
Jump to navigation Jump to search
 
(152 intermediate revisions by 45 users not shown)
Line 1: Line 1:
[[Category:General (简体中文)]]
+
[[Category:Localization (简体中文)]]
 +
[[Category:简体中文]]
 +
[[zh-hant:Localization/Traditional Chinese]]
 +
{{Related articles start (简体中文)}}
 +
{{Related|Installation guide (简体中文)}}
 +
{{Related|General recommendations (简体中文)}}
 +
{{Related|Beginners' Guide (简体中文)}}
 +
{{Related articles end}}
 +
依据「[[Arch Linux (简体中文)|Arch 之道]]」:我们不会为你配置好一切,因为“喜好和需求,每人皆不同”,但是会尽量确保让配置时方便和简单。事实上,甚至远比使用某些Linux中文版本容易。
  
请再仔细看看Arch的哲学"[[Arch之道]]":
+
本文尽可能提供了各种常见软件的中文化指导。但实际应用中,你可能遇到各种各样的麻烦。遇到了麻烦,不要气馁,解决问题本身就是一种乐趣。你可以通过各种渠道寻求帮助:
这意味着我们不会为你配置好一切,因为“喜好和需求,每人皆不同”,但是我们会尽量确保让你自行配置时,方便和简单。事实上,甚至远比你使用一些可能的Linux中文版本容易。
+
*[http://www.google.com/ncr Google]等搜索引擎
+
*[https://bbs.archlinux.org/ Arch官方论坛]
第一次使用ArchLinux时,用户通常会遇上这些(典型)的问题:
+
*[http://forum.ubuntu.org.cn/viewforum.php?f=155 Ubuntu中文论坛Arch专区]
 +
*[irc://irc.freenode.net/#archlinux-cn IRC频道:#archlinux-cn]
  
== '''怎么显示中文的界面?''' ==
+
==基本中文支持==
要正确实现中文,必需设置正确的locale和安装合适的中文字体。
+
要正确显示中文,必需设置正确的locale并安装合适的中文字体。
  
===locale的设定===
+
===locale设置===
Linux中通过locale来设置程序运行的不同环境。一般常用的中文locale有:
+
===安装中文locale===
 +
Linux中通过locale来设置程序运行的不同环境。常用的中文locale有(最直观的分别是可显示字的数量):
 +
zh_CN.GB2312
 
  zh_CN.GBK
 
  zh_CN.GBK
  zh_CN.GB2312
+
  zh_CN.GB18030
 
  zh_CN.UTF-8
 
  zh_CN.UTF-8
推荐使用UTF8的locale。需要注意的是,对于glibc(>=2.3.6),需要修改/etc/locale.gen文件来设定系统中可以使用的locale
+
zh_TW.BIG-5
  en_US.UTF8 UTF-8
+
zh_TW.UTF-8
  zh_CN.UTF8 UTF-8
+
 
  zh_CN.GBK GBK
+
推荐使用UTF-8的locale。对于glibc(>=2.3.6),需要修改{{ic|/etc/locale.gen}}文件来设定系统中可以使用的locale(取消对应项前的注释符号「{{ic|#}}」即可):
  zh_CN.GB2312 GB2312
+
  en_US.UTF-8 UTF-8
zh_CN.GB18030 GB18030
+
  zh_CN.UTF-8 UTF-8
然后执行locale-gen命令,这样便可以在系统中使用zh_CN.UTF8,zh_CN.GBK,zh_CN.GB2312,zh_CN.GB18030,en_US.UTF8等locale。可以通过locale命令来查看当前使用的locale
+
 
locale
+
然后执行{{ic|locale-gen}}命令,便可以在系统中使用这些locale。可以通过{{ic|locale}}命令来查看当前使用的locale:亦可通过{{ic|locale -a}}命令来查看目前可以使用的locale;
可以通过locale命令来查看目前可以使用的locale
+
 
  locale -a
+
===启用中文locale===
 +
Arch Linux中,通过{{ic|/etc/locale.conf}}文件设置全局有效的locale:
 +
  LANG=en_US.UTF-8
 +
{{警告|不推荐在此设置中文locale,会导致tty乱码;在tty下亦可显示和输入中文,但需要安装cce、zhcon或[https://github.com/felixonmars/aur3-mirror/tree/master/fbterm fbterm];}}
 +
{{提示|1=如欲为内核打中文补丁,可参见[http://blog.chinaunix.net/space.php?uid=436750&do=blog&id=2123586];}}
 +
 
 +
对于特定用户,还可以在{{ic|~/.bashrc}}、{{ic|~/.xinitrc}}或{{ic|~/.xprofile}}中设置自己的用户环境。不同之处在于:
 +
*.bashrc:  每次'''终端登录时'''读取并运用里面的设置。
 +
*.xinitrc: 每次'''startx启动X界面时'''读取并运用里面的设置
 +
*.xprofile: 每次'''使用gdm等图形登录时'''读取并运用里面的设置
 +
 
 +
====单独在图形界面启用中文locale====
 +
不推荐{{ic|/etc/locale.conf}}使用全局中文locale,会导致tty乱码。
 +
 
 +
如前面所说,可以在{{ic|~/.xinitrc}}或{{ic|~/.xprofile}}单独设置中文locale。添加如下内容到上述文件最前端注释之后(如果不确定使用哪个文件,可以都添加):
 +
export LANG=zh_CN.UTF-8
 +
export LANGUAGE=zh_CN:en_US
 +
export LC_CTYPE=en_US.UTF-8
 +
 
 +
{{注意|若欲将此三行放至{{ic|~/.xinitrc}}中,请注意将其放在{{ic|exec ''_example_WM_or_DE_''}}行之前;此为常见错误;}}
 +
{{注意|该方法适用于slim或者无登陆管理器的用户,GDM和KDM用户可以在Gnome或KDE设置中选择语言。}}
 +
 
 +
====图形界面用户设置全面的中文====
 +
添加如下内容到文件{{ic|~/.xprofile}}文件中
 +
  export LC_ALL="zh_CN.UTF-8"
 +
 
 +
{{注意|图形界面用户使用}}
  
Archlinux中,通过rc.conf文件可以设置全局有效的locale:
+
===中文字体===
LOCALE=en_US.UTF-8
+
====安装字体====
 +
除了设置好locale,还需要安装中文字体。
  
对于个人用户,还可以在.bashrc或.xprofile中设置自己的用户环境,不同之处在于:
+
常用的免费(GPL或兼容版权)中文字体有:
.bashrc:  每次'''终端登录时'''读取并运用里面的设置。
+
*{{Pkg|wqy-microhei}}
.xinitrc:  每次'''startx启动X界面时'''读取并运用里面的设置
+
*{{Pkg|wqy-microhei-lite}}
.xprofile: 每次'''使用gdm等图形登录时'''读取并运用里面的设置
+
*{{Pkg|wqy-bitmapfont}}
 +
*{{Pkg|wqy-zenhei}}
 +
*{{Pkg|ttf-arphic-ukai}}
 +
*{{Pkg|ttf-arphic-uming}}
 +
*{{Pkg|adobe-source-han-sans-cn-fonts}}
 +
*{{Pkg|adobe-source-han-serif-cn-fonts}}
 +
*{{pkg|noto-fonts-cjk}}
  
在终端(文字)界面下也可以显示和输入中文,但需要安装cce和zhcon。
+
系统字体将默认安装到{{ic|/usr/share/fonts}}。如果没有root权限或只打算自己使用某些字体,可以直接复制这些字体到{{ic|~/.fonts}}目录(或其子目录)下面,并把该路径加入/etc/fonts/local.conf中。具体参见后面章节。
更多的locale信息可以参见:
 
  
===安装中文字体===
+
另见:[http://wiki.debian.org.hk/w/Where_can_I_find_fonts_for_GNU/Linux]
除了设置好locale,你还需要安装中文字体:
 
pacman -S ttf-arphic-uming
 
  
常用的免费(GPL或兼容版权)中文字体有
+
====中文字体配置====
ttf-arphic-ukai
 
ttf-arphic-uming
 
ttf-fireflysung
 
另外文泉驿的中文点阵字体也非常不错,你可以从http://www.linuxsir.org 上的Archlinux版上下载文泉驿点阵字体的PKGBUILD来自行安装。
 
  
系统字体将默认安装到/usr/share/fonts,如果你没有root权限或者只打算自己使用某些字体,你可以直接复制这些字体到.fonts(或者其他)目录下面,并把该路径加入/etc/fonts/local.conf中,参见后面章节。
+
=====修正简体中文显示为异体(日文)字形=====
 +
安装的Noto Sans CJK 或 adobe source han sans otc fonts(思源黑体) 或 adobe source han serif otc fonts(思源宋体)后,在某些情况下(框架未定义地区)汉字字形与标准形态不符,例如门、关、复等字字形与规范中文不符。
  
已知问题:
+
这是因为每个程序中可以设置不同的默认字体,比如Arial或者Tohamo,而这些字体的属性由fontconfig控制,其使用顺序是据地区代码以A-Z字母表顺序成默认排序,由于 ja-JP 在 zh_{CN,HK,SG,TW} 之前,故优先显示日文字形。
*官方软件库中没有文泉驿字体包,你需要自己下载。
 
*ttf-fireflysung错误的依赖了xorg-clients-utils而不是xorg-fonts-utiles,参见bug报告:
 
  
==fontconfig设置==
+
{{提示|若欲解决Chromium/Chrome中的异体字形问题,应首先在chrome://settings/fonts中将几个字体选项调成Noto xxx CJK SC。如无效再尝试下述三种方案 [http://tieba.baidu.com/p/4879946717]}}
安装好字体以后,你可能对中文自己的显示不太满意。这时需要对fontconfig做某些设置。你可以在~/.font.config中设定,也可以在/etc/fonts/conf.d中设定。
 
  
===重排字型的显示顺序===
+
可选用以下方法解决(以简体中文为例):
Serifs字型
+
* 安装根据地区打包的字体,例如简体中文用户安装思源黑体简体中文包{{pkg|adobe-source-han-sans-cn-fonts}}、{{pkg|adobe-source-han-serif-cn-fonts}}或者{{aur|noto-fonts-sc}}。(推荐,此方法最简单)
<alias>
+
* 在{{ic|locale.conf}}中添加'''LANG=zh_CN.UTF-8''',以将简体中文设置为默认语言。由于对[[Locale (简体中文)]]定义了框架内地区(即 CJK 优先度),使得默认的优先级被忽略。
  <family>serif</family>
+
* 手动调整优先级,将中文字形调整到日文字形之前。[http://tieba.baidu.com/p/4879946717]
  <prefer>
+
 
  <family>Bitstream Vera Serif</family>
+
修改或创建文件{{ic|/etc/fonts/conf.avail/64-language-selector-prefer.conf}},
  <family>Times New Roman</family>
+
 
  <family>Nimbus Roman No9 L</family>
+
noto-fonts-cjk用户:
  <family>Luxi Serif</family>
+
<pre>
  <family>Times</family>
+
<?xml version="1.0"?>
  <family>WenQuanYi Bitmap Song</family>  
+
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
  <family>AR PL ShanHeiSun Uni</family>
+
<fontconfig>
  <family>AR PL New Sung</family>
+
  <alias>
  <family>AR PL ZenKai Uni</family>
+
    <family>sans-serif</family>
  <family>Ming(ISO10646)</family>
+
    <prefer>
  <family>Kochi Mincho</family>
+
      <family>Noto Sans CJK SC</family>
  <family>Baekmuk Batung</family>
+
      <family>Noto Sans CJK TC</family>
  </prefer>
+
      <family>Noto Sans CJK JP</family>
</alias>
+
    </prefer>
Sans字型
+
  </alias>
 +
  <!--以上为设置无衬线字体优先度-->
 +
  <alias>
 +
    <family>monospace</family>
 +
    <prefer>
 +
      <family>Noto Sans Mono CJK SC</family>
 +
      <family>Noto Sans Mono CJK TC</family>
 +
      <family>Noto Sans Mono CJK JP</family>
 +
    </prefer>
 +
  </alias>
 +
  <!--以上为设置等宽字体优先度-->
 +
</fontconfig>
 +
</pre>
 +
adobe-source-han-sans-otc-fonts用户:
 +
<pre>
 +
<?xml version="1.0"?>
 +
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
 +
<fontconfig>
 
   <alias>
 
   <alias>
  <family>sans-serif</family>
+
    <family>sans-serif</family>
  <prefer>
+
    <prefer>
  <family>Bitstream Vera Sans</family>
+
      <family>Source Han Sans SC</family>
  <family>Verdana</family>
+
      <family>Source Han Sans TC</family>
  <family>Arial</family>
+
      <family>Source Han Sans HW</family>
  <family>Tahoma</family>
+
      <family>Source Han Sans K</family>
  <family>WenQuanYi Bitmap Song</family>
+
    </prefer>
  <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>
 
   </alias>
Mononspace字型
+
  <!--以上为设置无衬线字体优先度-->
 
   <alias>
 
   <alias>
  <family>monospace</family>
+
    <family>monospace</family>
  <prefer>
+
    <prefer>
  <family>Bitstream Vera Sans Mono</family>
+
      <family>Source Han Sans SC</family>
  <family>Courier</family>
+
      <family>Source Han Sans TC</family>
  <family>Courier New</family>
+
      <family>Source Han Sans HW</family>
  <family>Andale Mono</family>
+
      <family>Source Han Sans K</family>
  <family>Luxi Mono</family>
+
    </prefer>
  <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>
 
   </alias>
 +
  <!--以上为设置等宽字体优先度-->
 +
</fontconfig>
 +
</pre>
 +
若{{ic|/etc/fonts}}目录下有{{ic|conf.d/}}目录,则在该目录中创建指向{{ic|/etc/fonts/conf.avail/64-language-selector-prefer.con}}的同名软链接:
  
===关闭小号字体的AA(反锯齿)===
+
   # ln -s /etc/fonts/conf.avail/64-language-selector-prefer.conf /etc/fonts/conf.d/64-language-selector-prefer.conf
对于比较小的字体,闭小号字体的反锯齿,会更加清晰。
 
<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:'''可以到这里得到更详细的[[字体设置]]文档和完整的[[中文字体配置范例]]
+
然后更新字体缓存即可生效:
  
'''参考文档'''
+
  # fc-cache -fv
*Fontconfig用户手册 http://www.chinalinuxpub.com/read.php?wid=634
+
执行以下命令检查,如果出现{{ic|NotoSansCJK-Regular.ttc: "Noto Sans CJK SC" "Regular"}}则表示设置成功:
*令Debian支援中文 http://wiki.linux.org.hk/w/Make_Debian_support_Chinese
+
  # fc-match -s |grep 'Noto Sans CJK'
*http://www.higherorder.org/wiki/Fontconfig
 
  
== '''怎么输入中文?''' ==
+
=====fontconfig设置=====
解决方法:安装相应的输入法,如:
+
fontconfig的设置文件是{{ic|~/.fonts.conf}}(用户)或者{{ic|/etc/fonts/conf.d}}(全局)。推荐修改前者。
pacman -S scim-pinyin
 
  
简体中文的用户推荐:智能拼音:scim-pinyin  五笔:scim-tables
+
关于中文字体设置,参见:[[Fonts (简体中文)]]、[[Font configuration (简体中文)]]。
繁体中文的用户推荐:
 
  
*为什么我们推荐使用SCIM?
+
[[Font Configuration (简体中文)/中文字体配置范例]]提供了中文字体fontconfig示范。
因为到目前为止,SCIM是惟一的“傻瓜式”输入法(感谢作者付出的很多努力,最终让我们打包和维护相当的轻松,而且对于用户来说,也基本不需要什么设置)。你可以参见:
 
  
要使用scim,还应该设置以下的环境变量(以scim为例),(可在xinitrc, .bashrc或.xprofile中设置)
+
另见:
export XIM="SCIM"
+
*[http://www.chinalinuxpub.com/read.php?wid=634 fontconfig用户手册]
export XMODIFIERS=@im=SCIM #设置scim为xim默认输入法
+
*[http://wiki.linux.org.hk/w/Make_Debian_support_Chinese Debian中文支持]
export GTK_IM_MODULE=scim #设置scim为gtk程序默认的输入法
+
*[http://www.higherorder.org/wiki/Fontconfig]
export QT_IM_MODULE=scim #设置scim为gtk程序默认的输入法
 
export XIM_PROGRAM="scim -d" #使可以自动启动
 
  
已知问题:
+
===中文输入法===
*由于SCIM的ABI兼容性问题,目前可能会造成一些软件拒绝运行,这些软件包括但不限于:Acrobat Reader, openoffice,直接从mozilla.org下载的firefox, thunderbird,以及realplay。权宜之计: 在程序的启动文件头输入:
+
常用的中文输入法平台有[[IBus (简体中文)|IBus]]、[[Fcitx (简体中文)|fcitx]]和[[Smart Common Input Method platform (简体中文)|scim]]。具体安装配置参见各自条目。
*目前scim在QT程序中还不能做到光标跟随
+
{{注意|scim现在维护滞后,不推荐使用。}}
  
== '''中文显示很模糊(淡),或没有中文粗体?''' ==
+
==终端中文支持==
在正常情况下,gnome本身已经转由cairo+pango来渲染字体,不存在这个问题了,但是你很可能在浏览一些网页时,还会发生这些问题。
+
===引导中文支持===
 +
请见 [[GRUB2_(简体中文)|grub2]]
  
没有中文粗体解决方法:
+
===终端中文支持===
 +
请见 [[Fbterm_(简体中文)|fbterm]]
  
把下面的配置加入/etc/fonts/local.conf
+
===终端中文输入支持===
<pre>
+
请参见 [[Fbterm_(简体中文)|fbterm]]
<!--
 
Synthetic emboldening for fonts that do not have bold face available
 
-->
 
  
<match target="font">
+
==软件中文化配置==
<!-- check to see if the font is just regular -->
+
===Firefox===
<test name="weight" compare="less_eq">
+
简体中文用户安装 {{pkg|firefox-i18n-zh-cn}}
<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>
 
</pre>
 
  
或者使用了下面的local.conf文件替换系统默认的local.conf文件。
+
繁体中文用户安装 {{pkg|firefox-i18n-zh-tw}}
cp local.conf /etc/fonts/
 
或者,自行编译fontconfig2.3.92以上的版本,并打开local.conf中的autohint
 
  
KDE环境:对不起,我不知道,我已经超过1年多没有用KDE了。欢迎各位的补充
+
===Libreoffice===
其他环境:见上。
+
简体中文用户安装 {{Pkg|libreoffice-fresh-zh-cn}} 或 {{Pkg|libreoffice-still-zh-cn}}
  
*官方新版本的mozila firefox(大于1.5.0.1)已经使用cairo+pango,但是在某些网站时会相当的慢。
+
繁体中文用户安装 {{Pkg|libreoffice-fresh-zh-tw}} 或 {{Pkg|libreoffice-still-zh-cn}}
  
== '''如何显示影片的中文字幕?''' ==
+
=== Calligra (原 Koffice)===
===mplayer===
+
简体中文用户安装 {{pkg|calligra-l10n-zh_cn}}{{Broken package link|replaced by {{Pkg|calligra}}}}
修改~/.mplayer/config
 
font=/usr/share/fonts/TTF/uming.ttf
 
subcp=cp936
 
  
可以使用下面的命令手动加载字幕
+
繁体中文用户安装 {{pkg|calligra-l10n-zh_tw}}{{Broken package link|replaced by {{Pkg|calligra}}}}
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。
+
===PDF阅读器===
 +
多数PDF查看器已经支持中文。但也有部分需要安装额外的语言包:
  
===xine===
+
Arcobat:
xine也可以显示中文字幕,但需要制作自己的中文字体。具体可以询问google。
+
AUR版本的中文包为{{AUR|acroread-chs}}{{Broken package link|{{aur-mirror|acroread-chs}}}}、{{AUR|acroread-cht}}{{Broken package link|{{aur-mirror|acroread-cht}}}}。
  
===gstreamer===
+
okular、evince等poppler相关的阅读器及Inkscape、Krita、MyPaint等可以处理pdf的图像处理工具:需要安装 {{pkg|poppler-data}}
在totem 1.4.0,由于使用gstreamer0.10,应该是可以自动加载同名的srt字幕。
 
  
== '''windows分区下的中文文件是乱码?''' ==
+
===Java===
如果使用了hal,应该是没有问题了,但是如果没有,请不妨试一下:
+
对于Sun Java用户,在{{ic|/opt/java/jre/lib/fonts}}中建立fallback目录,然后链接或拷贝若干中文字体到该目录就能使java程序正确显示中文。例如,在已经安装jre和ttf-fireflysung 的情况下,使用root权限执行下面的命令即可:
  /etc/rc.conf中的daemon一段中添加hal。
+
  ln -s /usr/share/fonts/TTF/odosung.ttc /opt/java/jre/lib/fonts/fallback/
 +
cd /opt/java/jre/lib/fonts/fallback/
 +
mkfontdir
 +
mkfontscale
  
或者直接修改/etc/fstab,'''注意危险''',你如果不懂,就不要学我:-)。如果locale是utf8,挂载windows分区时应该做如下设置
+
如果是openjdk6,需要复制{{ic|/usr/lib/jvm/java-6-openjdk/jre/lib/fontconfig.properties.src}}到{{ic|/usr/lib/jvm/java-6-openjdk/jre/lib/fontconfig.properties}},并修改这个文件中的字体位置,因为文泉驿的地址指错了。
/dev/hdc5 / reiserfs defaults iocharset=utf8 0 0
 
  
如果locale是GBK,则应该是
+
===vim===
  iocharset=cp936  
+
如果locale是utf8编码,用vim打开其他中文编码的文件可能会乱码。需要在{{ic|~/.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负责字幕的编码显示问题。
  
== '''Doc文件无法打开或显示不正常?''' ==
+
修改{{ic|~/.mplayer/config}}:
安装openoffice。
+
font='文泉驿正黑'
  pacman -S openoffice-zh_cn
+
  subcp=enca:zh:ucs-2
*如果你打算使用英文版的openoffice,你只需要安装openoffice-base包。
 
  
已知问题:官方库中的openoffice
+
使用下面的命令手动加载字幕:
 +
mplayer xxx.avi -sub xxxxx.srt
  
=='''正确显示中文PDF文件'''==
+
如果使用图形前端(比如SMPlayer),会更简单一些,只要在设置对话框里设定缺省字幕编码和字体即可。
  
=== Evince===
+
====xine====
 +
xine也可以显示中文字幕,但需要制作自己的中文字体。具体可以参考:[http://forum.ubuntu.org.cn/about2760.html]。
  
pacman -S evince xpdf-chinese-simplified
+
====gstreamer====
 +
在totem 1.4.0,由于使用gstreamer0.10,应该是可以自动加载同名的srt字幕。
  
===xpdf===
+
===LaTeX===
 +
首先需要安装CJK包,然后需要安装合适的字体。具体可以参考:[http://www.ctex.org]。
  
pacman -S xpdf-chinese-simplified
+
==乱码问题==
 +
避免乱码基本原则:使用utf-8代替gbk/gb2312。
  
===kpdf===
+
=== 文件名乱码 ===
 +
安装 {{pkg|convmv}},使用{{ic|convmv}}命令转换编码格式。示例:
 +
convmv -f GBK -t UTF-8 --notest --nosmart file
 +
{{ic|-f}}指定原始编码,{{ic|-t}}指定输出编码。使用{{ic|convmv --list}}可查询所有支持的编码。
 +
{{ic|--notest}}表示非测试而是要进行转码(如果不使用该参数只会打印出转换结果而不会实际转码),{{ic|--smart}}表示如果已经是UTF-8则忽略。
  
===arcobat===
+
=== 文件内容乱码===
 +
使用{{ic|iconv}}命令转换格式。示例:
 +
iconv -f GBK -t UTF-8 -o new-file origin-file
 +
{{ic|-f}}指定原始编码,{{ic|-t}}指定输出编码。使用{{ic|iconv -l}}可查询所有支持的编码。{{ic|-o}}指定输出文件。
  
 +
===zip压缩包乱码===
 +
避免方法:非utf8编码环境下(一般windwos下的中文环境即是)不使用zip进行压缩(建议使用7z)。
 +
解决方案:安装使用{{aur|unzip-iconv}}或者{{aur|unzip-natspec}}取代原版的{{pkg|unzip}}来解压缩,示例:
 +
  unzip -O gbk file.zip
 +
file.zip是压缩文件,gbk是该文件的编码格式,以-O指定(原版unzip无-O选项)。
  
'''Tips:''' Evince,Xpdf,Kpdf都能正确显示大部分中文PDF文件,但是一些没有内嵌中文字体的PDF文件需要CMap文件, 文本编码, 和其他各种配置信息等才能正确显示。这些附加信息包含在xpdf-chinese-simplified中,xpdf-chinese-simplified可以不依赖Xpdf而独立安装,但是Arch 中
+
===MP3文件标签乱码===
xpdf-chinese-simplified依赖于Xpdf这个包,这个依赖性的处理不太合理,用户可以自行修改。或者给包维护者[http://bugs.archlinux.org/ 提交解决方法]
+
对于用gstreamer做后端的播放器,如Rhythmbox,totem,设置如下的环境变量后即可正确读取mp3中GBK编码的ID3 tag:
 
 
=='''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
 
 
 
== '''MP3文件在播放器中乱码''' ==
 
解决方法:
 
对于Rhythmbox,设置如下的环境变量后正确读取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
*'''小贴士:'''适用于所有用gstreamer做后端的播放器。
 
  
 
对于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。
  
==Latex中如何使用中文==
+
Quod Libet播放器支持tag编辑及设置ID3v2编码。可以在~/.quodlibet/config中设置
首先需要安装CJK包,然后需要安装合适的字体。具体可以参考
+
id3encoding = gbk
*http://www.ctex.org
+
注意:Quod Libet默认支持utf8编码
*http://www.newsmth.net 的Tex版
 
  
==JAVA界面乱码==
+
最为彻底的解决方法为将编码为gbk的id3 tag转化为utf8编码。首先安装mutagen,然后利用下面的命令转换:
对于java 1.5来说,只要在
+
mid3iconv -e gbk XXX.mp3
/opt/java/jre/lib/fonts
 
中建立fallback目录,然后链接或拷贝若干中文字体到该目录就能使java程序正确显示中文
 
  
==应用程序的设置==
+
===Windows分区下的中文文件名乱码===
===vim===
+
一般是因为挂载的字符集与locale不同,可以修改/etc/fstab(如果不了解请仔细阅读相关文档)。如果locale是utf8,修改为:
如果locale是utf8编码,用vim显示gbk编码的文件可能会乱码。因此需要在.vimrc做如下设置
+
/dev/sdxx /media/win ntfs defaults,iocharset=utf8 0 0
  "Chinese GBK support
+
 
  set fileencodings=utf8,gbk
+
如果locale是GBK,则应该是:
 +
/dev/sdxx /media/win ntfs defaults,iocharset=cp936 0 0
 +
 
 +
===Samba乱码===
 +
用Arch作为Samba服务器时,在{{ic|/etc/samba/smb.conf}}中加入下面一行就可以解决Windows客户端乱码问题:
 +
unix charset=gb2312
 +
 
 +
===ftp乱码===
 +
很多ftp站点是GBK编码。如果使用UTF8的locale,下载的文件名可能会乱码。对于lftp,在{{ic|.lftp/rc}}下做如下设置:
 +
  set ftp:charset "gbk"
 +
  set file:charset "UTF-8"
 +
 
 +
对于gftp,可以在{{ic|.gftp/gftprc}}中做如下设置即可:
 +
remote_charsets=gb2312
 +
 
 +
但下载下来的文件名仍然是乱码,需要打补丁编译。补丁地址为:
 +
http://www.teatime.com.tw/%7Etommy/linux/gftp_remote_charsets.patch
 +
 
 +
==翻译软件==
 +
* {{pkg|stardict}}星际译王。
 +
* {{pkg|sdcv}}(命令行的星际译王)和{{pkg|ydcv}}命令行的有道词典。
 +
* {{aur|youdao-dict}}:有道词典(图形界面),屏幕取词翻译。
 +
* {{pkg|goldendict}}:默认都不带字典,可下载相应字典包(支持Babylon的词库格式.BGL,已经不再维护的StarDict的词库格式(.ifo/.dict/.idx/.syn),Dictd的词库格式(.index/.dict(.dz) ,ABBYY Lingvo 的词库格式(.dsl/.lsa/.dat),mdict的词库格式等等。可在互联网上下载这些词典的词库文件导入的goldendict使用(可能有版权问题)。
 +
* {{aur|moedict}}一个跨多平台的汉语词典,除汉字、词、成语等,还包含客家话、闽南话、简单的外文翻译、笔顺书写等等,[https://www.moedict.tw/%E8%90%8C 萌典在线地址]。
 +
* {{aur|linedict}}一个通过爬取有道翻译网页得到结果的在线英汉词典,部分支持英汉翻译,模仿dmenu在屏幕顶端显示结果,使用方便,由于{{pkg|ydcv}}使用的api将在2017年底失效,而有道新的api有免费使用次数限制,linedict是一个较好的替代品

Latest revision as of 03:35, 26 March 2019

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

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

基本中文支持

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

locale设置

安装中文locale

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

zh_CN.GB2312
zh_CN.GBK
zh_CN.GB18030
zh_CN.UTF-8
zh_TW.BIG-5
zh_TW.UTF-8

推荐使用UTF-8的locale。对于glibc(>=2.3.6),需要修改/etc/locale.gen文件来设定系统中可以使用的locale(取消对应项前的注释符号「#」即可):

en_US.UTF-8 UTF-8
zh_CN.UTF-8 UTF-8

然后执行locale-gen命令,便可以在系统中使用这些locale。可以通过locale命令来查看当前使用的locale:亦可通过locale -a命令来查看目前可以使用的locale;

启用中文locale

Arch Linux中,通过/etc/locale.conf文件设置全局有效的locale:

LANG=en_US.UTF-8
警告: 不推荐在此设置中文locale,会导致tty乱码;在tty下亦可显示和输入中文,但需要安装cce、zhcon或fbterm
提示: 如欲为内核打中文补丁,可参见[1]

对于特定用户,还可以在~/.bashrc~/.xinitrc~/.xprofile中设置自己的用户环境。不同之处在于:

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

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

不推荐/etc/locale.conf使用全局中文locale,会导致tty乱码。

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

export LANG=zh_CN.UTF-8
export LANGUAGE=zh_CN:en_US
export LC_CTYPE=en_US.UTF-8
注意: 若欲将此三行放至~/.xinitrc中,请注意将其放在exec _example_WM_or_DE_行之前;此为常见错误;
注意: 该方法适用于slim或者无登陆管理器的用户,GDM和KDM用户可以在Gnome或KDE设置中选择语言。

图形界面用户设置全面的中文

添加如下内容到文件~/.xprofile文件中

export LC_ALL="zh_CN.UTF-8"
注意: 图形界面用户使用

中文字体

安装字体

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

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

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

另见:[2]

中文字体配置

修正简体中文显示为异体(日文)字形

安装的Noto Sans CJK 或 adobe source han sans otc fonts(思源黑体) 或 adobe source han serif otc fonts(思源宋体)后,在某些情况下(框架未定义地区)汉字字形与标准形态不符,例如门、关、复等字字形与规范中文不符。

这是因为每个程序中可以设置不同的默认字体,比如Arial或者Tohamo,而这些字体的属性由fontconfig控制,其使用顺序是据地区代码以A-Z字母表顺序成默认排序,由于 ja-JP 在 zh_{CN,HK,SG,TW} 之前,故优先显示日文字形。

提示: 若欲解决Chromium/Chrome中的异体字形问题,应首先在chrome://settings/fonts中将几个字体选项调成Noto xxx CJK SC。如无效再尝试下述三种方案 [3]

可选用以下方法解决(以简体中文为例):

修改或创建文件/etc/fonts/conf.avail/64-language-selector-prefer.conf,

noto-fonts-cjk用户:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
  <alias>
    <family>sans-serif</family>
    <prefer>
      <family>Noto Sans CJK SC</family>
      <family>Noto Sans CJK TC</family>
      <family>Noto Sans CJK JP</family>
    </prefer>
  </alias>
  <!--以上为设置无衬线字体优先度-->
  <alias>
    <family>monospace</family>
    <prefer>
      <family>Noto Sans Mono CJK SC</family>
      <family>Noto Sans Mono CJK TC</family>
      <family>Noto Sans Mono CJK JP</family>
    </prefer>
  </alias>
  <!--以上为设置等宽字体优先度-->
</fontconfig>

adobe-source-han-sans-otc-fonts用户:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
  <alias>
    <family>sans-serif</family>
    <prefer>
      <family>Source Han Sans SC</family>
      <family>Source Han Sans TC</family>
      <family>Source Han Sans HW</family>
      <family>Source Han Sans K</family>
    </prefer>
  </alias>
  <!--以上为设置无衬线字体优先度-->
  <alias>
    <family>monospace</family>
    <prefer>
      <family>Source Han Sans SC</family>
      <family>Source Han Sans TC</family>
      <family>Source Han Sans HW</family>
      <family>Source Han Sans K</family>
    </prefer>
  </alias>
  <!--以上为设置等宽字体优先度-->
</fontconfig>

/etc/fonts目录下有conf.d/目录,则在该目录中创建指向/etc/fonts/conf.avail/64-language-selector-prefer.con的同名软链接:

 # ln -s /etc/fonts/conf.avail/64-language-selector-prefer.conf /etc/fonts/conf.d/64-language-selector-prefer.conf

然后更新字体缓存即可生效:

 # fc-cache -fv

执行以下命令检查,如果出现NotoSansCJK-Regular.ttc: "Noto Sans CJK SC" "Regular"则表示设置成功:

 # fc-match -s |grep 'Noto Sans CJK'
fontconfig设置

fontconfig的设置文件是~/.fonts.conf(用户)或者/etc/fonts/conf.d(全局)。推荐修改前者。

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

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

另见:

中文输入法

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

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

终端中文支持

引导中文支持

请见 grub2

终端中文支持

请见 fbterm

终端中文输入支持

请参见 fbterm

软件中文化配置

Firefox

简体中文用户安装 firefox-i18n-zh-cn

繁体中文用户安装 firefox-i18n-zh-tw

Libreoffice

简体中文用户安装 libreoffice-fresh-zh-cnlibreoffice-still-zh-cn

繁体中文用户安装 libreoffice-fresh-zh-twlibreoffice-still-zh-cn

Calligra (原 Koffice)

简体中文用户安装 calligra-l10n-zh_cn[broken link: replaced by calligra]

繁体中文用户安装 calligra-l10n-zh_tw[broken link: replaced by calligra]

PDF阅读器

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

Arcobat: AUR版本的中文包为acroread-chsAUR[broken link: archived in aur-mirror]acroread-chtAUR[broken link: archived in aur-mirror]

okular、evince等poppler相关的阅读器及Inkscape、Krita、MyPaint等可以处理pdf的图像处理工具:需要安装 poppler-data

Java

对于Sun Java用户,在/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,需要复制/usr/lib/jvm/java-6-openjdk/jre/lib/fontconfig.properties.src/usr/lib/jvm/java-6-openjdk/jre/lib/fontconfig.properties,并修改这个文件中的字体位置,因为文泉驿的地址指错了。

vim

如果locale是utf8编码,用vim打开其他中文编码的文件可能会乱码。需要在~/.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负责字幕的编码显示问题。

修改~/.mplayer/config

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

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

mplayer xxx.avi -sub xxxxx.srt

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

xine

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

gstreamer

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

LaTeX

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

乱码问题

避免乱码基本原则:使用utf-8代替gbk/gb2312。

文件名乱码

安装 convmv,使用convmv命令转换编码格式。示例:

convmv -f GBK -t UTF-8 --notest --nosmart file

-f指定原始编码,-t指定输出编码。使用convmv --list可查询所有支持的编码。 --notest表示非测试而是要进行转码(如果不使用该参数只会打印出转换结果而不会实际转码),--smart表示如果已经是UTF-8则忽略。

文件内容乱码

使用iconv命令转换格式。示例:

iconv -f GBK -t UTF-8 -o new-file origin-file

-f指定原始编码,-t指定输出编码。使用iconv -l可查询所有支持的编码。-o指定输出文件。

zip压缩包乱码

避免方法:非utf8编码环境下(一般windwos下的中文环境即是)不使用zip进行压缩(建议使用7z)。 解决方案:安装使用unzip-iconvAUR或者unzip-natspecAUR取代原版的unzip来解压缩,示例:

 unzip -O gbk file.zip

file.zip是压缩文件,gbk是该文件的编码格式,以-O指定(原版unzip无-O选项)。

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服务器时,在/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中做如下设置即可:

remote_charsets=gb2312

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

翻译软件

  • stardict星际译王。
  • sdcv(命令行的星际译王)和ydcv命令行的有道词典。
  • youdao-dictAUR:有道词典(图形界面),屏幕取词翻译。
  • goldendict:默认都不带字典,可下载相应字典包(支持Babylon的词库格式.BGL,已经不再维护的StarDict的词库格式(.ifo/.dict/.idx/.syn),Dictd的词库格式(.index/.dict(.dz) ,ABBYY Lingvo 的词库格式(.dsl/.lsa/.dat),mdict的词库格式等等。可在互联网上下载这些词典的词库文件导入的goldendict使用(可能有版权问题)。
  • moedictAUR一个跨多平台的汉语词典,除汉字、词、成语等,还包含客家话、闽南话、简单的外文翻译、笔顺书写等等,萌典在线地址
  • linedictAUR一个通过爬取有道翻译网页得到结果的在线英汉词典,部分支持英汉翻译,模仿dmenu在屏幕顶端显示结果,使用方便,由于ydcv使用的api将在2017年底失效,而有道新的api有免费使用次数限制,linedict是一个较好的替代品