Arch(KDE Plasma)中文化

基础中文化

本节参考: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

TTY 的英文 locale

中文字体配置

安装字体

  • 全部中文字体请见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.conf51-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配置文件

以下是我的配置文件:

<?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设置

  1. 打开 Region and Language
  2. 点击的 Language 后的 Modify
  3. 右下角 Add More 添加 简体中文
  4. 将简体中文移至 American English 上方

SDDM锁屏界面

设置 KDE 语言后还是英文的 SDDM
SDDM 锁屏界面可能并不会跟着 KDE 变为中文(这个似乎有回报称是Bug)

  1. 编辑 /etc/systemd/system/sddm.service.d/EnvironmentFile.conf,并添加以下内容:
[Service]
EnvironmentFile=/etc/default/locale
  1. 编辑 /etc/default/locale 添加 LANG=zh_CN.UTF-8

Fcitx 5中文输入法

本节参考:

  1. Fcitx5 - Arch Linux 中文维基
  2. Using Fcitx 5 on Wayland - Fcitx

安装

  1. 输入法框架:安装 fcitx5-im 包组,这个包组包含fcitx5本体、配置工具、qt与gtk的输入库
    pacman -Syu fcitx5-im

  2. 输入法:选择下列一个输入法安装
    fcitx5-chinese-addons 由fcitx提供的基础输入法
    fcitx5-rime 中州韵
    pacman -Syu fcitx5-chinese-addons

  3. 如果需要输入时间日期,则需要安装fcitx5-lua,以依赖的形式安装:
    pacman -Syu --asdeps fcitx5-lua

配置输入法环境变量(Wayland)

  • Plasma-Wayland 下需要 XMODIFIERS=@im=fcitx
  • Plasma-X11 下额外需要GTK_IM_MODULE=fcitxQT_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
  • 增加中文分组,将所有中文输入法置于此而非默认分组。默认分组下永远不会输入中文,只有切换分组到中文后才可以输入中文。
  • 快捷键设置如下:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值