本地化/简体中文

来自 ArchWiki

根据“Arch 之道”:我们无法为您配置一切,因为“每个人的偏好和需求都不同”,但我们会尽力确保配置方便简洁。事实上,它甚至比某些中文版 Linux 更容易。

本文尽可能为各种常用软件提供中文文化指导。但在实际应用中,您可能会遇到各种问题。当您遇到麻烦时,请不要气馁。解决问题本身就是一种乐趣。您可以通过各种平台寻求帮助

基础中文支持

要正确显示中文,您必须正确设置区域设置并安装适当的中文字体。

区域设置

安装中文区域

在 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 以设置系统中可以使用的区域设置(删除对应项目前的注释符号“#”)

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 乱码文本问题,请在 /etc/locale.conf 中将 LANG 区域设置 全局设置为 en_US.UTF-8

LANG=en_US.UTF-8
用户特定区域

您可以在 ~/.bashrc~/.xinitrc~/.xprofile 中设置您自己的用户环境变量。

  • .bashrc:每次您使用终端登录时应用设置。
  • .xinitrc:每次您使用 startxSLiM 启动 X 界面时应用设置。
  • .xprofile:每次您使用显示管理器(如 GDM)登录时应用设置。
为图形界面设置中文区域

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

如前所述,中文区域设置可以在 ~/.xinitrc~/.xprofile 中单独设置。将以下两行添加到这两个文件之一的开头(如果您不确定使用哪个文件,请添加到两个文件的开头)

export LANG=zh_CN.UTF-8
export LANGUAGE=zh_CN:en_US
注意
  • 请务必将它们放在 ~/.xinitrcexec _example_WM_or_DE_之前
  • 此方法适用于 SLiM 用户或不使用图形登录界面(又名 greeter)的人。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 设置

本文或章节已过时。

原因: ~/.fonts.conf 路径似乎已弃用。最好链接到 Font configuration#Fontconfig 配置Font configuration (简体中文)#Fontconfig配置 而不是明确提及字体配置路径。(在 Talk:Localization/Simplified Chinese 中讨论)

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

有关中文字体设置,请参阅 Fonts (简体中文)Font configuration (简体中文)

Font Configuration (简体中文)/Chinese (简体中文) 提供了中文 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-JPzh_{CN,HK,SG,TW} 之前,因此首先使用日文字体。

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

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

/etc/fonts/conf.d//etc/fonts/conf.avail/ 下创建一个文件,例如 64-language-selector-prefer.conf,或修改或创建 ~/.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 xxx.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,不再维护的 StarDict 词库格式 (.ifo/.dict/.idx/.syn),dictd 词库格式 (.index/.dict(.dz),ABBYY Lingvo 的词库格式 (.dsl/.lsa/.dat),mdict 的词库格式等。这些词典的词库文件可以在互联网上下载和导入 GoldenDict 的使用(可能存在版权问题)。
  • moedictAUR:一个多平台中文词典。除了汉字、词语、成语等,还包含客家话、闽南语、简单的外语翻译、笔顺书写等。moedict 在线地址
  • linedictAUR:一个在线英汉词典,通过抓取有道翻译网页获取结果,部分支持英汉互译,模仿 dmenu 在屏幕顶部显示结果。它相当容易使用。ydcvAUR 使用的 API 已过期,新的 API 免费使用有频率限制,因此 linedictAUR 是一个很好的替代品。