跳转至内容

本地化/简体中文

来自 ArchWiki

按照“Arch 之道”:我们无法为您配置好一切,因为“每个人的偏好和需求都不相同”,但我们会尽量确保配置过程便捷简单。事实上,这比某些中文版的 Linux 还要简单。

本文尽可能为各种常用软件提供中文文化指南。但在实际应用中,您可能会遇到各种各样的问题。遇到困难时不要灰心。解决问题本身就是一种乐趣。您可以通过各种平台寻求帮助:

基本中文支持

要正确显示中文,必须正确设置 区域设置 (locale) 并安装相应的字体。

区域设置

安装中文区域设置

在 Linux 中,区域设置用于为程序运行设定不同的环境。常用的中文区域设置(最直观的是能显示的字数)如下:

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

建议使用 UTF-8 区域设置。您需要修改 /etc/locale.gen 来设定系统中可用的区域(取消对应条目前方的注释符号“#”)。

/etc/locale.gen
en_US.UTF-8 UTF-8
zh_CN.UTF-8 UTF-8

执行 locale-gen 后,选定的区域即可在系统中使用。您可以使用 locale 查看当前使用的区域,使用 locale -a 查看当前系统可用的区域。

启用中文区域设置

警告/etc/locale.conf 中全局设置中文区域会导致 tty 显示乱码,这是因为 Linux 内核的 tty 字形限制。要在 tty 下正确显示中文字符,请安装并 配置 zhconAUR
设置全局默认区域为英语(可选)

为避免上述 tty 乱码问题,可将全局 LANG 区域 设置为 en_US.UTF-8

/etc/locale.conf
LANG=en_US.UTF-8
用户级区域设置

您可以设置自己的用户 环境变量

为图形界面设置中文环境

不建议在 /etc/locale.conf 中设置全局中文区域,因为这会导致所有 tty 显示乱码。

如前所述,可以在 启动文件 中单独设置中文区域。将以下两行添加到两个文件之一的开头(如果不确定使用哪个文件,则两个都添加):

export LANG=zh_CN.UTF-8
export LANGUAGE=zh_CN:en_US
  • 如果使用 ~/.xinitrc,请确保添加的内容位于任何 exec 行之前,以便生效。
  • 此方法适用于 SLiM 用户或不使用图形登录管理器的人。GDMSDDM 用户可以在 GNOMEKDE 的设置中配置显示语言。
  • 不建议通过全局的 export LC_ALL 覆盖所有区域设置。LC_ALL 应仅保留用于诊断调试目的。设置 LC_ALL 会为排查语言设置问题带来不必要的困难。

中文字体

安装字体

除了区域设置,还需要中文字体。

常用的自由(GPL 或兼容版权)中文字体包括:

本文或本章节已过时。

原因: ~/.fonts 路径已弃用。最好链接到 Fonts#手动安装,而不是在此重复有关字体路径的信息。(请在 Talk:Localization/Simplified Chinese 中讨论)

系统字体默认安装在 /usr/share/fonts。如果您没有 root 权限或者计划自行使用某些字体,可以直接将这些字体复制到 ~/.fonts(或其子目录),并将路径添加到 /etc/fonts/local.conf。详情请查阅后续章节。

参见:[1]

中文字体配置

fontconfig 设置

fontconfig 的配置文件是 ~/.config/fontconfig/fonts.conf(用户级)或 /etc/fonts/conf.d(全局)。建议修改前者。

有关中文字体设置,请参阅 字体 (简体中文)字体配置 (简体中文)

字体配置 (简体中文)/中文 (简体中文) 提供了中文字体 fontconfig 的演示。

参见

中文字符显示为变体(日文)字形

安装 Noto Sans CJK adobe-source-han-sans-otc-fonts(思源黑体)或 Noto Serif CJK adobe-source-han-serif-otc-fonts(思源宋体)后,在某些情况下,渲染的中文字符可能与标准写法不符,例如“门”、“关”和“复”。

这是因为每个程序可以设置不同的默认字体(如 Arial 或 Tahoma),而这些字体的属性受 fontconfig 控制。使用顺序基于区域代码和 A-Z 的默认顺序。由于 ja-JP 排在 zh_{CN,HK,SG,TW} 之前,因此会优先使用日文字体。

提示 可以在 Chromium/Chrome/Firefox 浏览器的设置中单独设置字体,例如将字体选项调整为 Noto xxx CJK SC。

您可以使用以下方法解决此问题(以简体中文为例):

/etc/fonts/conf.d//etc/fonts/conf.avail/ 下创建一个文件,例如 64-language-selector-prefer.conf,或者修改/创建 ~/.config/fontconfig/fonts.conf(仅对用户有效)。

如果安装了 noto-fonts-cjk,则写入:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
  <alias>
    <family>sans-serif</family>
    <prefer>
      <family>Noto Sans</family>
      <family>Noto Sans CJK SC</family>
      <family>Noto Sans CJK TC</family>
      <family>Noto Sans CJK JP</family>
    </prefer>
  </alias>
  <alias>
    <family>serif</family>
    <prefer>
      <family>Noto Serif</family>
      <family>Noto Serif CJK SC</family>
      <family>Noto Serif CJK TC</family>
      <family>Noto Serif CJK JP</family>
    </prefer>
  </alias>
  <alias>
    <family>monospace</family>
    <prefer>
      <family>Noto Sans Mono</family>
      <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.avail 下创建了 xml 文件,例如:

# 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'

中文输入法

常用的中文输入法框架有 IBusfcitx5scim。具体安装和配置请参考各自的维基文章。

注意 SCIM目前缺乏维护,因此不推荐使用。

终端中文支持

引导加载程序中文支持

参见 GRUB2 (简体中文)

软件的中文环境配置

Firefox

简体中文安装:firefox-i18n-zh-cn

繁体中文安装:firefox-i18n-zh-tw

Libreoffice

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

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

PDF 阅读器

大多数 PDF 阅读器已经支持中文。但是,对于基于 poppler 的阅读器和可以处理 PDF 文件的图像处理工具,需要安装 poppler-data

Java

对于 Sun Java 用户,在 /opt/java/jre/lib/fonts 下创建一个 fallback 目录,然后将几个中文字体链接或复制到该目录,即可让 Java 程序正确显示中文。例如,如果已安装 jreAURopendesktop-fonts,请使用以下命令:

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

vim

如果区域设置是 utf8 编码,使用 vim 打开其他中文编码的文件可能会出现乱码。需要在 ~/.vimrc 中进行以下设置:

~/.vimrc
...
set fileencodings=utf8,cp936,gb18030,big5
...

中文视频字幕

MPlayer

要使 MPlayer 正确显示中文字幕,关键在于确保字幕文件的编码与 MPlayer 配置中使用的编码一致。如果字幕文件是 gbk 编码,使用 subcp=cp936;如果是 utf-8 编码,使用 subcp=utf8。如果字幕文件是 utf-8 编码却设置为 subcp=cp936,则会出现乱码。另一个更简单的方法是设置为 subcp=enca:zh:ucs-2,让 enca 负责字幕的编码识别和显示。

修改 ~/.mplayer/config

~/.mplayer/config
font='文泉驿正黑'
subcp=enca:zh:ucs-2

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

$ mplayer xxxxx.avi -sub xxxxx.srt

如果使用图形前端(如 SMPlayer),只需在设置对话框中设置默认的字幕编码和字体即可正常工作。

xine

Xine 也可以显示中文字幕,但需要自行制作中文字体。详情请参考 [3]

gstreamer

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

LaTeX

您需要安装 CJK 软件包和相应的字体。详情请参考 [4]

乱码问题

避免乱码的基本原则是使用 utf-8,而不是 gbk/gb2312。

有关排查说明,请参见 字符编码#故障排查

翻译软件

  • stardict:星际译王。
  • sdcv:命令行版星际译王。
  • ydcvAUR:命令行有道词典。
  • youdao-dictAUR:有道词典(图形界面),支持划词翻译。
  • GoldenDict:默认无词典,可下载相应的词典包(支持 Babylon 的 .BGL 格式、星际译王不再维护的词库格式 (.ifo/.dict/.idx/.syn)、dictd 词库格式 (.index/.dict(.dz)、ABBYY Lingvo 词库格式 (.dsl/.lsa/.dat)、mdict 词库格式等。这些词典文件可在网上下载并导入到 GoldenDict 中使用(可能存在版权问题)。
  • moedictAUR:多平台中文词典。除了汉字、词语、成语等,还包含客家语、闽南语、简单的外语翻译、笔顺书写等。萌典在线地址
  • linedictAUR:一个在线英汉词典,通过爬取有道翻译网页获取结果,支持英汉互译,模仿 dmenu 在屏幕顶部显示结果。使用起来非常方便。ydcvAUR 使用的 API 已失效,且新 API 有免费使用频率限制,因此 linedictAUR 是一个很好的替代品。

© . This site is unofficial and not affiliated with Arch Linux.

Content is available under GNU Free Documentation License 1.3 or later unless otherwise noted.