文章目录
基础中文化
本节参考:Localization /Simplified Chinese - ArchWiki
设置locale
生成中文locale
在 /etc/locale.gen
中删除的zh_CN.UTF-8 UTF-8
前方的 #
之后使用以下指令生成 Locale:
locale-gen
设置终端locale
为 TTY 设置英文 locale 防止乱码。当然也可以去 安装zhcon等软件包为TTY启用中文支持
在 /etc/locale.conf
中添加 LANG=en_US.UTF-8
中文字体配置
安装字体
- 全部中文字体请见Localization/Chinese - Arch Wiki,如果不需要浏览除中文以外的内容,则安装纯中文字体包即可(后缀 zh-cn ,cn 或 sc 的)
- 如果有 Emoji、数学字符等特殊需要,请额外参考 Fonts - Arch Wiki
- 注意右上角带有 AUR 的需要自行从 AUR 下载编译或安装 AUR Helper
以安装 noto 亚洲字体和 Emoji 字体为例:
pacman -Syu noto-fonts-cjk noto-fonts-emoji
通过fontconfig设置治理字体匹配问题
如果安装了亚洲字体,有可能会遇到异体字问题,参考字体配置 - Arch Linux 中文维基。
启用fontconfig配置文件
检查 /etc/fonts/conf.d
有没有 50-user.conf
和 51-local.conf
。这两个文件分别启用用户配置文件 ~/.config/fontconfig/fonts.conf
和全局配置文件 /etc/fonts/local.conf
。如果没有,请通过以下指令建立软连接:
cd /etc/fonts/conf.d
sudo ln -s /usr/share/fontconfig/conf.avail/50-user.conf
sudo ln -s /usr/share/fontconfig/conf.avail/51-local.conf
编写fontconfig配置文件
- fontconfig 文件本质就是在对输入的font family字符串进行修改,最后匹配本地字符库
- 具体配置方法见 fonts-config(5)。可以参考示例1和示例2
- 可以使用指令
env FC_DEBUG=4 fc-match
来查看配置执行情况以及修正错误 - 根据 Windows 中默认的字体回退顺序设置回退顺序:SimSun(SC) -> MingLiU(TC) -> MS UI Gothic(JP) -> Batang(KR)
以下是我的配置文件:
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
<fontconfig>
<!-- 英文默认字体使用 Noto 字体,终端使用 Hack.并设置中文 Fallback -->
<match>
<test qual="any" name="family"> <string>serif</string> </test>
<edit name="family" mode="prepend" binding="strong">
<string>Noto Serif</string>
<string>Noto Serif CJK SC</string>
<string>Noto Serif CJK TC</string>
<string>Noto Serif CJK JP</string>
<string>Noto Serif CJK KR</string>
</edit>
</match>
<match target="pattern">
<test qual="any" name="family"> <string>sans-serif</string> </test>
<edit name="family" mode="prepend" binding="strong">
<string>Noto Sans</string>
<string>Noto Sans CJK SC</string>
<string>Noto Sans CJK TC</string>
<string>Noto Sans CJK JP</string>
<string>Noto Sans CJK KR</string>
</edit>
</match>
<match target="pattern">
<test qual="any" name="family"> <string>monospace</string> </test>
<edit name="family" mode="prepend" binding="strong">
<string>Hack</string>
<string>Noto Sans Mono CJK SC</string>
<string>Noto Sans Mono CJK TC</string>
<string>Noto Sans Mono CJK JP</string>
<string>Noto Sans Mono CJK KR</string>
</edit>
</match>
<!-- Windows & Linux Chinese fonts. -->
<!-- 把所有常见的中文字体映射到思源黑体和思源宋体,这样当这些字体未安装时会使用思源黑体和思源宋体.
解决特定程序指定使用某字体,并且在字体不存在情况下不会使用fallback字体导致中文显示不正常的情况. -->
<!-- 文泉驿字体 -->
<match target="pattern">
<test qual="any" name="family"> <string>WenQuanYi Zen Hei</string> </test>
<edit name="family" mode="assign" binding="same">
<string>Noto Sans CJK SC</string>
</edit>
</match>
<match target="pattern">
<test qual="any" name="family"> <string>WenQuanYi Micro Hei</string> </test>
<edit name="family" mode="assign" binding="same">
<string>Noto Sans CJK SC</string>
</edit>
</match>
<match target="pattern">
<test qual="any" name="family"> <string>WenQuanYi Micro Hei Light</string> </test>
<edit name="family" mode="assign" binding="same">
<string>Noto Sans CJK SC</string>
</edit>
</match>
<!-- 微软雅黑 -->
<match target="pattern">
<test qual="any" name="family"> <string>Microsoft YaHei</string> </test>
<edit name="family" mode="assign" binding="same">
<string>Noto Sans CJK SC</string>
</edit>
</match>
<match target="pattern">
<test qual="any" name="family"> <string>微软雅黑</string> </test>
<edit name="family" mode="assign" binding="same">
<string>Noto Sans CJK SC</string>
</edit>
</match>
<!-- 黑体 -->
<match target="pattern">
<test qual="any" name="family"> <string>SimHei</string> </test>
<edit name="family" mode="assign" binding="same">
<string>Noto Sans CJK SC</string>
</edit>
</match>