文章目录
基础中文化
本节参考: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配置文件
<test><\test>
标签中的内容表示此配置在何时生效<edit><\edit>
标签中的内容是配置内容- 具体配置方法见字体配置 - Arch Linux 中文维基。可以参考示例1和示例2
以下是我的配置文件:
<?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>
</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>
</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>
</edit>
</match>
<!-- 修复可能的异体字型问题 -->
<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>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>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>
<!-- 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" compare="contains"> <string>SimHei</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" compare="contains"> <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" compare="contains"> <string>SimSun</string> </test>
<edit name="family" mode="assign" binding="same">
<string>Noto Serif CJK SC</string>
</edit>
</match>
<match target="pattern">
<test qual="any" name="family" compare="contains"> <string>宋体</string> </test>
<edit name="family" mode="assign" binding="same">
<string>Noto Serif CJK SC</string>
</edit>
</match>
</fontconfig>
24-10-22更新:有些网站字体不正常,从而发现中文不能匹配 Fallback 的问题。同时修正编码风格统一于 Arch Wiki
KDE图形界面中文化
KDE设置
- 打开
Region and Language
- 点击的
Language
后的Modify
- 右下角
Add More
添加简体中文
- 将简体中文移至
American English
上方
SDDM锁屏界面
SDDM 锁屏界面可能并不会跟着 KDE 变为中文(这个似乎有回报称是Bug)
- 编辑
/etc/systemd/system/sddm.service.d/EnvironmentFile.conf
,并添加以下内容:
[Service]
EnvironmentFile=/etc/default/locale
- 编辑
/etc/default/locale
添加LANG=zh_CN.UTF-8
Fcitx 5中文输入法
本节参考:
安装
-
输入法框架:安装
fcitx5-im
包组,这个包组包含fcitx5本体、配置工具、qt与gtk的输入库
pacman -Syu fcitx5-im -
输入法:选择下列一个输入法安装
fcitx5-chinese-addons 由fcitx提供的基础输入法
fcitx5-rime 中州韵
pacman -Syu fcitx5-chinese-addons -
如果需要输入时间日期,则需要安装fcitx5-lua,以依赖的形式安装:
pacman -Syu --asdeps fcitx5-lua
配置输入法环境变量(Wayland)
- Plasma-Wayland 下需要
XMODIFIERS=@im=fcitx
- Plasma-X11 下额外需要
GTK_IM_MODULE=fcitx
和QT_IM_MODULE=fcitx
编辑文件 /etc/profile.d/fcitx.conf
#Setting up fcitx5 environments
if test "$XDG_SESSION_TYPE" = "x11" ; then
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
fi
export XMODIFIERS=@im=fcitx
附加组件
本节记录在 Fcitx 配置附加组件中可能需要更改的内容。
在新的 KDE 输入法界面中需要先勾选下方显示高级选项才可以更改启用状态
云拼音
云拼音默认没有启用且默认后端是Google,需要启动并配置后端
KDE主题接管问题
plasma桌面会自动接管fcitx的主题设置,如果不希望如此,则需要在 输入法设置->附加组件->取消勾选KDE Input Method Pannel,在重新登陆后,输入法将遵循Classic User Interface的配置
英文与数字后不自动输入半角符号
附加组件-标点-字母或数字之后输入半角标点
我的偏好全局配置
以下是我的fcitx配置方案,仅供参考
- 默认页长度增加至7
- 增加中文分组,将所有中文输入法置于此而非默认分组。默认分组下永远不会输入中文,只有切换分组到中文后才可以输入中文。
- 快捷键设置如下: