Localization (简体中文)/Simplified Chinese (简体中文) - ArchWiki
生成中文locale
(这一步在安装篇就有写)
在/etc/locale.gen中取消中文的zh_CN.UTF-8 UTF-8
之后使用locale-gen
设置终端locale
为TTY设置英文locale防止乱码
(这一步在安装篇中有写)
(这一步可以用 安装zhcon等软件包为TTY启用中文支持 替代)
在/etc/locale.conf中添加LANG=en_US.UTF-8
中文字体
安装字体
Fonts (简体中文) - ArchWiki (archlinux.org)
在Arch Wiki上推荐的自由字体(GPL或兼容授权)如下:
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
文中白色主题截图字体应为wqy-microhei,而非当前的noto-fonts-cjk。顺带安装emoji字体。
pacman -Syu noto-fonts-cjk noto-fonts-emoji
通过fontconfig设置治理字体匹配问题
字体配置 - Arch Linux 中文维基
这个部分解决已知的字体大小不一问题、异体字问题
fontconfig配置文件包含于两个位置:
~/.config/fontconfig/fonts.conf(用户配置)
/etc/fonts/local.conf(全局配置)
在进行配置前,首先要保证两个位置的配置已经启用:ls /etc/fonts/conf.d
如果没有以上两个文件,则需要创建链接
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
以下是我自己的配置代码(基于示例1与示例2,进行了细微修改),直接在全局配置文件中进行配置
<test><\test>标签中的内容表示此配置在何时生效;<edit><\edit>标签中的内容是配置内容;具体内容参考字体配置 - Arch Linux 中文维基
代码开始:
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
<fontconfig>
<!-- 英文默认字体使用 Noto Sans 和 Noto Serif ,终端使用 Hack. -->
<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>
<!-- 这里原来有一段配置中文环境字体的内容,类似内容已经在70-noto-cjk.conf中定义 -->
<!-- 修复异体字型问题 -->
<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">
<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">
<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">
<string>SimSun-18030</string>
</test>
<edit name="family" mode="assign" binding="same">
<string>Noto Serif CJK SC</string>
</edit>
</match>
</fontconfig>
完成上述配置后应注销系统并重新登陆以应用新的fontconfig设置
为图形化界面设置中文locale
在~/.xinitrc或../xprofile的开头添加:
export LANG=zh_CN.UTF-8
export LANGUAGE=zh_CN:en_US
以上方法适合SLiM桌面管理器和无桌面管理器的用户,像是在设置全局locale
对于KDE的SDDM请更改设置Regional Settings-Language和Regional Settings-Formats:
如果此时字体出现异常,可以在 外观-字体 处将字体更改为中文字体,但此时应该是正常的
同时,这个“体” 字是问题大户,在我的系统中经常变为某个不知名的衬线字体。
SDDM:
对于SDDM,设置并不会跟着KDE变为中文(这个似乎有回报称是Bug)
这个可以使用两个方式:
1.简单粗暴,会破坏前面的TTY英文防乱码,将/etc/locale.conf更改LANG为zh_CN.UTF-8
2.编辑/etc/systemd/system/sddm.service.d/EnvironmentFile.conf,并添加
[Service]
EnvironmentFile=/etc/default/locale
并在/etc/default/locale中设置LANG=zh_CN.UTF-8
如上设置方法可以避免与pacman发生冲突,直观体验为:不会在某次滚动后sddm重新变为英文
sddm将在重启后变为中文。如果希望立即应用,则应执行
systemctl daemon-reload
systemctl restart sddm
fcitx 5
Fcitx5 - Arch Linux 中文维基
安装
输入法框架:安装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
输入环境设置:
编辑文件 /etc/environment 并添加
GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx
SDL_IM_MODULE=fcitx
GLFW_IM_MODULE=ibus
随桌面环境启动:Wiki:“plasma桌面下无需此步骤”
附加组件
在配置附加组建中可能需要更改的内容:
*在新的KDE输入法界面中需要先勾选下方显示高级选项才可以更改启用状态
云拼音:云拼音默认没有启用且默认后端是Google,需要启动并配置后端
KDE主题接管问题:plasma桌面会自动接管fcitx的主题设置,如果不希望如此,则需要在 输入法设置->附加组件->取消勾选KDE Input Method Pannel,在重新登陆后,输入法将遵循Classic User Interface的配置
英文与数字后不自动输入半角符号:附加组件-标点-字母或数字之后输入半角标点
我的偏好全局配置
#以下是我的fcitx配置方案,仅供参考#
默认页长度增加至7,增加中文分组,将所有中文输入法置于此而非默认分组。默认分组下永远不会输入中文,只有切换分组到中文后才可以输入中文。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)