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

From ArchWiki
Jump to navigation Jump to search
m (→‎启用中文locale: fix '=' escape)
 
(69 intermediate revisions by 21 users not shown)
Line 1: Line 1:
[[Category:中文化 (简体中文)]]
+
[[Category:Localization (简体中文)]]
 
[[Category:简体中文]]
 
[[Category:简体中文]]
 
+
[[zh-hant:Localization/Traditional Chinese]]
{{Article summary start|摘要}}
+
{{Related articles start (简体中文)}}
{{Article summary text|Archlinux的中文化。}}
+
{{Related|Installation guide (简体中文)}}
{{Article summary heading|相关阅读}}
+
{{Related|General recommendations (简体中文)}}
{{Article summary wiki|Official Arch Linux Install Guide (简体中文)}}
+
{{Related|Beginners' Guide (简体中文)}}
{{Article summary wiki|General Recommendations (简体中文)}}
+
{{Related articles end}}
{{Article summary wiki|Beginners' Guide (简体中文)}}
+
依据「[[Arch Linux (简体中文)|Arch 之道]]」:我们不会为你配置好一切,因为“喜好和需求,每人皆不同”,但是会尽量确保让配置时方便和简单。事实上,甚至远比使用某些Linux中文版本容易。
{{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中文版本容易。
 
  
 
本文尽可能提供了各种常见软件的中文化指导。但实际应用中,你可能遇到各种各样的麻烦。遇到了麻烦,不要气馁,解决问题本身就是一种乐趣。你可以通过各种渠道寻求帮助:
 
本文尽可能提供了各种常见软件的中文化指导。但实际应用中,你可能遇到各种各样的麻烦。遇到了麻烦,不要气馁,解决问题本身就是一种乐趣。你可以通过各种渠道寻求帮助:
*Google等搜索引擎
+
*[http://www.google.com/ncr Google]等搜索引擎
 
*[https://bbs.archlinux.org/ Arch官方论坛]
 
*[https://bbs.archlinux.org/ Arch官方论坛]
 
*[http://forum.ubuntu.org.cn/viewforum.php?f=155 Ubuntu中文论坛Arch专区]
 
*[http://forum.ubuntu.org.cn/viewforum.php?f=155 Ubuntu中文论坛Arch专区]
*[http://www.linuxsir.org/bbs/forum96.html Linuxsir论坛Arch讨论区]
+
*[irc://irc.freenode.net/#archlinux-cn IRC频道:#archlinux-cn]
  
 
==基本中文支持==
 
==基本中文支持==
Line 29: Line 25:
 
  zh_CN.GB18030
 
  zh_CN.GB18030
 
  zh_CN.UTF-8
 
  zh_CN.UTF-8
 +
zh_TW.BIG-5
 +
zh_TW.UTF-8
  
推荐使用UTF8的locale。对于glibc(>=2.3.6),需要修改{{ic|/etc/locale.gen}}文件来设定系统中可以使用的locale:
+
推荐使用UTF-8的locale。对于glibc(>=2.3.6),需要修改{{ic|/etc/locale.gen}}文件来设定系统中可以使用的locale(取消对应项前的注释符号「{{ic|#}}」即可):
  en_US.UTF8 UTF-8
+
  en_US.UTF-8 UTF-8
  zh_CN.UTF8 UTF-8
+
  zh_CN.UTF-8 UTF-8
zh_CN.GBK GBK
 
zh_CN.GB2312 GB2312
 
zh_CN.GB18030 GB18030
 
 
 
然后执行locale-gen命令,便可以在系统中使用这些locale。可以通过locale命令来查看当前使用的locale:
 
locale
 
  
可以通过locale命令来查看目前可以使用的locale:
+
然后执行{{ic|locale-gen}}命令,便可以在系统中使用这些locale。可以通过{{ic|locale}}命令来查看当前使用的locale:亦可通过{{ic|locale -a}}命令来查看目前可以使用的locale;
locale -a
 
  
 
===启用中文locale===
 
===启用中文locale===
Archlinux中,通过{{ic|rc.conf}}文件设置全局有效的locale:
+
Arch Linux中,通过{{ic|/etc/locale.conf}}文件设置全局有效的locale:
  LOCALE=en_US.UTF-8
+
  LANG=en_US.UTF-8
{{注意|不推荐这里设置中文locale,会导致TTY终端乱码。在终端界面下也可以显示和输入中文,但需要安装cce、zhcon或fbterm。}}
+
{{警告|不推荐在此设置中文locale,会导致tty乱码;在tty下亦可显示和输入中文,但需要安装cce、zhcon或[https://github.com/felixonmars/aur3-mirror/tree/master/fbterm fbterm];}}
{{注意|如在内核中添加终端中文支持,请参见 [http://blog.chinaunix.net/space.php?uid{{=}}436750&do{{=}}blog&id{{=}}2123586]}}
+
{{提示|1=如欲为内核打中文补丁,可参见[http://blog.chinaunix.net/space.php?uid=436750&do=blog&id=2123586]}}
  
 
对于特定用户,还可以在{{ic|~/.bashrc}}、{{ic|~/.xinitrc}}或{{ic|~/.xprofile}}中设置自己的用户环境。不同之处在于:
 
对于特定用户,还可以在{{ic|~/.bashrc}}、{{ic|~/.xinitrc}}或{{ic|~/.xprofile}}中设置自己的用户环境。不同之处在于:
Line 55: Line 46:
  
 
====单独在图形界面启用中文locale====
 
====单独在图形界面启用中文locale====
不推荐{{ic|rc.conf}}使用全局中文locale,会导致终端乱码。
+
不推荐{{ic|/etc/locale.conf}}使用全局中文locale,会导致tty乱码。
  
 
如前面所说,可以在{{ic|~/.xinitrc}}或{{ic|~/.xprofile}}单独设置中文locale。添加如下内容到上述文件最前端注释之后(如果不确定使用哪个文件,可以都添加):
 
如前面所说,可以在{{ic|~/.xinitrc}}或{{ic|~/.xprofile}}单独设置中文locale。添加如下内容到上述文件最前端注释之后(如果不确定使用哪个文件,可以都添加):
 
  export LANG=zh_CN.UTF-8
 
  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"
 
  export LC_ALL="zh_CN.UTF-8"
{{注意|该方法适用于slim或者无登陆管理器的用户,GDM和KDM用户可以在Gnome或KDE设置中选择语言。}}
+
 
 +
{{注意|图形界面用户使用}}
  
 
===中文字体===
 
===中文字体===
 
====安装字体====
 
====安装字体====
除了设置好locale,还需要安装中文字体:
+
除了设置好locale,还需要安装中文字体。
pacman -S wqy-zenhei
 
  
 
常用的免费(GPL或兼容版权)中文字体有:
 
常用的免费(GPL或兼容版权)中文字体有:
*{{Package Official|wqy-bitmapfont}}
+
*{{Pkg|wqy-microhei}}
*{{Package Official|wqy-zenhei}}
+
*{{Pkg|wqy-microhei-lite}}
*{{Package Official|ttf-arphic-ukai}}
+
*{{Pkg|wqy-bitmapfont}}
*{{Package Official|ttf-arphic-uming}}
+
*{{Pkg|wqy-zenhei}}
*{{Package Official|ttf-fireflysung}}
+
*{{Pkg|ttf-arphic-ukai}}
*{{Package AUR|wqy-microhei}}([[AUR]]中)
+
*{{Pkg|ttf-arphic-uming}}
*{{Package AUR|wqy-microhei-lite}}([[AUR]]中)
+
*{{Pkg|adobe-source-han-sans-cn-fonts}}
 +
*{{Pkg|adobe-source-han-serif-cn-fonts}}
 +
*{{pkg|noto-fonts-cjk}}
  
 
系统字体将默认安装到{{ic|/usr/share/fonts}}。如果没有root权限或只打算自己使用某些字体,可以直接复制这些字体到{{ic|~/.fonts}}目录(或其子目录)下面,并把该路径加入/etc/fonts/local.conf中。具体参见后面章节。
 
系统字体将默认安装到{{ic|/usr/share/fonts}}。如果没有root权限或只打算自己使用某些字体,可以直接复制这些字体到{{ic|~/.fonts}}目录(或其子目录)下面,并把该路径加入/etc/fonts/local.conf中。具体参见后面章节。
Line 81: Line 82:
  
 
====中文字体配置====
 
====中文字体配置====
安装好字体以后,字体显示效果可能不堪入目。需要对fontconfig和某些程序进行调整。
 
  
fontconfig是字体选择的接口,你可以用它去控制单个字体或者字体族的属性,比如hint或者autohint。
+
=====修正简体中文显示为异体(日文)字形=====
 +
安装的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。如无效再尝试下述三种方案 [http://tieba.baidu.com/p/4879946717]}}
 +
 
 +
可选用以下方法解决(以简体中文为例):
 +
* 安装根据地区打包的字体,例如简体中文用户安装思源黑体简体中文包{{pkg|adobe-source-han-sans-cn-fonts}}、{{pkg|adobe-source-han-serif-cn-fonts}}或者{{aur|noto-fonts-sc}}。(推荐,此方法最简单)
 +
* 在{{ic|locale.conf}}中添加'''LANG=zh_CN.UTF-8''',以将简体中文设置为默认语言。由于对[[Locale (简体中文)]]定义了框架内地区(即 CJK 优先度),使得默认的优先级被忽略。
 +
* 手动调整优先级,将中文字形调整到日文字形之前。[http://tieba.baidu.com/p/4879946717]
 +
 
 +
修改或创建文件{{ic|/etc/fonts/conf.avail/64-language-selector-prefer.conf}},
 +
 
 +
noto-fonts-cjk用户:
 +
<pre>
 +
<?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>
 +
</pre>
 +
adobe-source-han-sans-otc-fonts用户:
 +
<pre>
 +
<?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>
 +
</pre>
 +
若{{ic|/etc/fonts}}目录下有{{ic|conf.d/}}目录,则在该目录中创建指向{{ic|/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
 +
 
 +
然后更新字体缓存即可生效:
  
另外每个程序中可以设置不同的默认字体,比如Arial或者Tohamo。这些字体的属性由fontconfig控制。所以当字体显示不满意时,首先需要判断是调整字体的种类还是字体的属性。
+
  # fc-cache -fv
 +
执行以下命令检查,如果出现{{ic|NotoSansCJK-Regular.ttc: "Noto Sans CJK SC" "Regular"}}则表示设置成功:
 +
  # fc-match -s |grep 'Noto Sans CJK'
  
====fontconfig设置====
+
=====fontconfig设置=====
 
fontconfig的设置文件是{{ic|~/.fonts.conf}}(用户)或者{{ic|/etc/fonts/conf.d}}(全局)。推荐修改前者。
 
fontconfig的设置文件是{{ic|~/.fonts.conf}}(用户)或者{{ic|/etc/fonts/conf.d}}(全局)。推荐修改前者。
  
关于中文字体设置,参见:[[Fonts (简体中文)]]、[[Font Configuration (简体中文)]]。
+
关于中文字体设置,参见:[[Fonts (简体中文)]]、[[Font configuration (简体中文)]]。
  
 
[[Font Configuration (简体中文)/中文字体配置范例]]提供了中文字体fontconfig示范。
 
[[Font Configuration (简体中文)/中文字体配置范例]]提供了中文字体fontconfig示范。
Line 100: Line 172:
  
 
===中文输入法===
 
===中文输入法===
常用的中文输入法平台有[[ibus (简体中文)|ibus]]、[[Fcitx (简体中文)|fcitx]]和[[Smart Common Input Method platform (简体中文)|scim]]。具体安装配置参见各自条目。
+
常用的中文输入法平台有[[IBus (简体中文)|IBus]]、[[Fcitx (简体中文)|fcitx]]和[[Smart Common Input Method platform (简体中文)|scim]]。具体安装配置参见各自条目。
 
{{注意|scim现在维护滞后,不推荐使用。}}
 
{{注意|scim现在维护滞后,不推荐使用。}}
  
 
==终端中文支持==
 
==终端中文支持==
 
===引导中文支持===
 
===引导中文支持===
请见grub2
+
请见 [[GRUB2_(简体中文)|grub2]]
  
 
===终端中文支持===
 
===终端中文支持===
请见fbterm
+
请见 [[Fbterm_(简体中文)|fbterm]]
  
 
===终端中文输入支持===
 
===终端中文输入支持===
请参见fbterm
+
请参见 [[Fbterm_(简体中文)|fbterm]]
  
 
==软件中文化配置==
 
==软件中文化配置==
===桌面环境===
+
===Firefox===
除[[KDE (简体中文)|KDE]]外,各大桌面环境已经包含了中文语言文件。[[KDE (简体中文)|KDE]]的中文包需要额外安装:
+
简体中文用户安装 {{pkg|firefox-i18n-zh-cn}}
pacman -S kde-l10n-zh_cn
 
{{注意|LXDE组件目前只有繁体中文支持。}}
 
  
===Firefox===
+
繁体中文用户安装 {{pkg|firefox-i18n-zh-tw}}
简体中文用户安装:
 
pacman -S firefox-i18n-zh-cn
 
繁体中文用户安装:
 
pacman -S firefox-i18n-zh-tw
 
  
 
===Libreoffice===
 
===Libreoffice===
简体中文用户安装:
+
简体中文用户安装 {{Pkg|libreoffice-fresh-zh-cn}} 或 {{Pkg|libreoffice-still-zh-cn}}
pacman -S libreoffice-zh-CN
 
繁体中文用户安装:
 
pacman -S libreoffice-zh-TW
 
  
===Koffice===
+
繁体中文用户安装 {{Pkg|libreoffice-fresh-zh-tw}} 或 {{Pkg|libreoffice-still-zh-cn}}
简体中文用户安装:
+
 
pacman -S koffice-l10n-zh_cn
+
=== Calligra (原 Koffice)===
繁体中文用户安装:
+
简体中文用户安装 {{pkg|calligra-l10n-zh_cn}}{{Broken package link|replaced by {{Pkg|calligra}}}}
pacman -S koffice-l10n-zh_tw
+
 
 +
繁体中文用户安装 {{pkg|calligra-l10n-zh_tw}}{{Broken package link|replaced by {{Pkg|calligra}}}}
  
 
===PDF阅读器===
 
===PDF阅读器===
Line 141: Line 205:
  
 
Arcobat:
 
Arcobat:
AUR版本的中文包为{{Package AUR|acroread-chs}}、{{Package AUR|acroread-cht}}。
+
AUR版本的中文包为{{AUR|acroread-chs}}{{Broken package link|{{aur-mirror|acroread-chs}}}}、{{AUR|acroread-cht}}{{Broken package link|{{aur-mirror|acroread-cht}}}}。
  
xpdf:
+
okular、evince等poppler相关的阅读器及Inkscape、Krita、MyPaint等可以处理pdf的图像处理工具:需要安装 {{pkg|poppler-data}}
pacman -S xpdf-chinese-simplified
 
 
 
poppler相关的阅读器:
 
pacman -S poppler-data
 
  
 
===Java===
 
===Java===
Line 181: Line 241:
 
在totem 1.4.0,由于使用gstreamer0.10,应该是可以自动加载同名的srt字幕。
 
在totem 1.4.0,由于使用gstreamer0.10,应该是可以自动加载同名的srt字幕。
  
===Latex===
+
===LaTeX===
 
首先需要安装CJK包,然后需要安装合适的字体。具体可以参考:[http://www.ctex.org]。
 
首先需要安装CJK包,然后需要安装合适的字体。具体可以参考:[http://www.ctex.org]。
  
==其他中文化问题==
+
==乱码问题==
====中文显示模糊或没有中文粗体====
+
避免乱码基本原则:使用utf-8代替gbk/gb2312。
正常情况下,gnome本身已经转由cairo+pango来渲染字体,不存在这个问题了。但仍可能在浏览一些网页时发生这些问题。
 
  
没有中文粗体解决方法:
+
=== 文件名乱码 ===
把下面的配置加入/etc/fonts/local.conf
+
安装 {{pkg|convmv}},使用{{ic|convmv}}命令转换编码格式。示例:
  <pre>
+
  convmv -f GBK -t UTF-8 --notest --nosmart file
<!--
+
{{ic|-f}}指定原始编码,{{ic|-t}}指定输出编码。使用{{ic|convmv --list}}可查询所有支持的编码。
Synthetic emboldening for fonts that do not have bold face available
+
{{ic|--notest}}表示非测试而是要进行转码(如果不使用该参数只会打印出转换结果而不会实际转码),{{ic|--smart}}表示如果已经是UTF-8则忽略。
-->
 
  
<match target="font">
+
=== 文件内容乱码===
<!-- check to see if the font is just regular -->
+
使用{{ic|iconv}}命令转换格式。示例:
<test name="weight" compare="less_eq">
+
iconv -f GBK -t UTF-8 -o new-file origin-file
<const>medium</const>
+
{{ic|-f}}指定原始编码,{{ic|-t}}指定输出编码。使用{{ic|iconv -l}}可查询所有支持的编码。{{ic|-o}}指定输出文件。
</test>
+
 
<!-- check to see if the pattern requests bold -->
+
===zip压缩包乱码===
<test target="pattern" name="weight" compare="more">
+
避免方法:非utf8编码环境下(一般windwos下的中文环境即是)不使用zip进行压缩(建议使用7z)。
<const>medium</const>
+
解决方案:安装使用{{aur|unzip-iconv}}或者{{aur|unzip-natspec}}取代原版的{{pkg|unzip}}来解压缩,示例:
</test>
+
  unzip -O gbk file.zip
<!--
+
file.zip是压缩文件,gbk是该文件的编码格式,以-O指定(原版unzip无-O选项)。
  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>
 
  
 
===MP3文件标签乱码===
 
===MP3文件标签乱码===
Line 257: Line 300:
 
http://www.teatime.com.tw/%7Etommy/linux/gftp_remote_charsets.patch
 
http://www.teatime.com.tw/%7Etommy/linux/gftp_remote_charsets.patch
  
===翻译软件===
+
==翻译软件==
目前有两个选择:星际译王或者goldendict,这两者默认都不带字典,所以安装完软件后,需要下载相应字典。
+
* {{pkg|stardict}}星际译王。
下面介绍安装星际译王:
+
* {{pkg|sdcv}}(命令行的星际译王)和{{pkg|ydcv}}命令行的有道词典。
先安装{{Package Official|stardict}}软件包:
+
* {{aur|youdao-dict}}:有道词典(图形界面),屏幕取词翻译。
pacman -S stardict
+
* {{pkg|goldendict}}:默认都不带字典,可下载相应字典包(支持Babylon的词库格式.BGL,已经不再维护的StarDict的词库格式(.ifo/.dict/.idx/.syn),Dictd的词库格式(.index/.dict(.dz) ,ABBYY Lingvo 的词库格式(.dsl/.lsa/.dat),mdict的词库格式等等。可在互联网上下载这些词典的词库文件导入的goldendict使用(可能有版权问题)。
stardict默认是不带字典的,需要去[http://stardict.sourceforge.net/]下载字典安装。安装方法如下:
+
* {{aur|moedict}}一个跨多平台的汉语词典,除汉字、词、成语等,还包含客家话、闽南话、简单的外文翻译、笔顺书写等等,[https://www.moedict.tw/%E8%90%8C 萌典在线地址]。
tar -xjvf testdict.tar.bz2
+
* {{aur|linedict}}一个通过爬取有道翻译网页得到结果的在线英汉词典,部分支持英汉翻译,模仿dmenu在屏幕顶端显示结果,使用方便,由于{{pkg|ydcv}}使用的api将在2017年底失效,而有道新的api有免费使用次数限制,linedict是一个较好的替代品
mv testdict /usr/share/stardict/dic
 
 
 
推荐使用:
 
*xdict英汉字典
 
*Merriam Webster 10th dictionary
 
*牛津现代英汉双解辞典(正体中文)
 
*朗道英汉词典(正体中文)
 

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是一个较好的替代品