【Arch Linux】本地化:简体中文

本文主要介绍 Arch Linux 本地化为简体中文的操作。

本文的测试环境是 KDE Plasma + SDDM + Wayland。考虑到 Xorg 教程较多,且大部分操作通用,本文会存在 Xorg 和 Wayland 混合描述的情况。

必要配置

不建议用户日常使用 root 帐户,则此时用户的当前帐户建议拥有 sudo 权限。安装 sudo 包。

同时部分本地化安装包在 AUR 源中,建议用户安装 AUR helper。本文以 yay 为例。

生成语言环境^1

编辑 /etc/locale.gen,找到 #en_US.UTF-8 UTF-8#zh_CN.UTF-8 UTF-8,删除前面的注释符号“#”。

再生成语言环境文件:

1
sudo locale-gen

为保证大部分程序和终端环境显示正常,在 /etc/locale.conf 中设置 LANG 环境变量:

1
LANG=en_US.UTF-8

(可选)为 Xorg 图形界面设置中文语言环境

编辑 ~/.xinitrc~/.xprofile

1
2
export LANG=zh_CN.UTF-8
export LANGUAGE=zh_CN:en_US

显示简体中文字体

此时图形界面的中文显示一般是异常的。这可以通过安装相关字体解决。

安装字体^2

1
sudo pacman -S wqy-microhei wqy-microhei-lite wqy-bitmapfont wqy-zenhei ttf-arphic-ukai ttf-arphic-uming adobe-source-han-sans-cn-fonts adobe-source-han-serif-cn-fonts noto-fonts-cjk

可选 AUR 源中 ttf-ms-win11-auto-* 相关的包(存在已知问题,见下文)。

一般此时字体缓存已刷新。若无:

1
fc-cache -fv

可以通过类似下述命令验证字体缓存:

1
fc-match -s | grep 'Noto Sans CJK'

ttf-ms-win11-auto-* 相关包无效

参见 ttf-ms-win11-auto AUR 包详情页面下的评论

It still throws ln: failed to create symbolic link '/home/<User>/.cache/yay/ttf-ms-win11-auto/src/' -> '': No such file or directory warnings when I install the package via yay. Manually copy/move the font files from ~/.cache/yay/ttf-ms-win11-auto/src to /usr/share/fonts and fc-cache -fv can solve the problem.

因此,读者只需查看 AUR 包的缓存(如 ~/.cache/yay/ttf-ms-win11-auto),找到其中的字体文件,或是解压其中的压缩包(如 ttf-ms-win11-auto-zh_cn-10.0.22000.318-2-any.pkg.tar.zst)得到字体文件,将其复制到 /usr/share/fonts 并重新生成字体缓存即可。

修复简体中文字符显示为日文的问题^3

新建文件 /etc/fonts/conf.avail/64-language-selector-prefer.conf

若安装 noto-fonts-cjk 包:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<alias>
<family>serif</family>
<prefer>
<family>Noto Serif CJK SC</family>
<family>Noto Serif CJK TC</family>
<family>Noto Serif CJK JP</family>
</prefer>
</alias>
<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 包:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<alias>
<family>serif</family>
<prefer>
<family>Source Han Serif SC</family>
<family>Source Han Serif TC</family>
<family>Source Han Serif HW</family>
<family>Source Han Serif K</family>
</prefer>
</alias>
<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>

然后新建软链接应用配置:

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

随后刷新字体缓存生效:

1
fc-cache -fv

中文输入法

本文使用 Fcitx 5 框架配套 Rime 输入法引擎和 Clover Pinyin(四叶草拼音)输入方案。

Fcitx 5

安装^4

1
sudo pacman -S fcitx5 fcitx5-qt fcitx5-gtk fcitx5-configtool

在 Xorg 环境下,编辑 ~/.xprofile^5

1
2
3
4
5
6
export GTK_IM_MODULE=fcitx5
export QT_IM_MODULE=fcitx5
export XMODIFIERS="@im=fcitx5"

export LANG="zh_CN.UTF-8"
export LC_CTYPE="zh_CN.UTF-8"

在 Wayland 环境下,编辑 /etc/environment

1
2
3
GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS="@im=fcitx"

注销会话或重启。

外观

本文使用 Material Color 皮肤。

1
sudo pacman -S fcitx5-material-color

再编辑 Fcitx 5 的配置文件 ~/.config/fcitx5/conf/classicui.conf^6

1
2
3
4
5
6
7
8
9
10
11
# 垂直候选列表
Vertical Candidate List=False

# 按屏幕 DPI 使用
PerScreenDPI=True

# Font (设置成你喜欢的字体)
Font="思源黑体 CN Medium 13"

# 主题
Theme=Material-Color-Pink

诊断工具

1
fcitx5-diagnose

Rime

安装

1
sudo pacman -S fcitx5-rime

重启 Fcitx 5。依次 System Settings -> Regional Settings -> Input Method -> Add Input Method… -> Only Show Current Language [Uncheck] -> Rime(中州韻)来激活输入法。

注意:Rime 系统目录位于 /usr/share/rime-data。本地目录 ~/.local/share/fcitx5/rime 可以覆盖前者的配置。

单行模式

单行模式类似于 Windows 10 中微软拼音的默认行为:输入的拼音序列能同时键入到文本中,待选定候选词后才将其替换为对应的词。

编辑 ~/.config/fcitx5/conf/rime.conf^7

1
2
# 可用时在应用程序中显示预编辑文本(开启单行模式)
PreeditInApplication=True

Clover Pinyin

安装

1
yay -S rime-cloverpinyin

编辑 ~/.local/share/fcitx5/rime/default.custom.yaml

1
2
3
4
5
patch:
# 每页候选词个数
"menu/page_size": 9
schema_list:
- schema: clover

重启 Fcitx 5。

注意:Clover Pinyin 有关快捷键等配置位于 ~/.local/share/fcitx5/rime/build/clover.schema.yaml

Emoji

1
2
sudo pacman -S noto-fonts-emoji
yay -S noto-color-emoji-fontconfig

注销会话或重启。

特殊符号

指输入特殊符号拼音出现候选词(如“pingfang”出现“²”),或输入“/xx”(“xx”表示一些英文字母的组合)出现一类候选词(如“/sx”出现数学相关特殊符号)。

对于前者,目前尚无较好的解决方案。

对于后者,参考该回复

注意:特殊符号支持存在已知问题,可能导致内存溢出,可以通过如下命令简单修复:^8

1
2
3
python -c "$(curl -fsSL https://github.com/fkxxyz/rime-symbols/raw/master/rime-symbols-gen)"
mkdir -p ~/.local/share/fcitx5/rime/opencc
mv symbol.json symbol_category.txt symbol_word.txt ~/.local/share/fcitx5/rime/opencc

重新部署 Rime。

参考

Posted on

2022-07-13

Updated on

2022-07-14

Licensed under

Comments