Arch(KDE Plasma)中文化

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--

随着KDE6更新,系统设置大改。只需到Region and Language中将Language改为简体中文即可

对于KDE请更改设置Regional Settings -> Language 和 Regional Settings -> Formats:

如果此时字体出现异常,可以在 外观-字体 处将字体更改为中文字体,但经过fontconfig设置后,应该是正常的

“体” 字是问题大户,在我设置fontconfig之前经常变为某个不知名的衬线字体。

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将在重启后变为中文。如果希望应用在本次启动中应用,则应保存所有工作,注销图形用户界面,按 alt+ctrl+F5 切换到任意其他文字终端,登陆并以root权限执行:
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

依据fcitx输入法的说明,我们需要在Plasma-Wayland下设置环境变量 XMODIFIERS=@im=fcitx,在X11上则还需要设置GTK_IM_MODULE=fcitx和 QT_IM_MODULE=fcitx。

Using Fcitx 5 on Wayland - Fcitx

编辑文件/etc/profile.d/fcitx.conf

# Setting up fcitx5 environments
if [ "$XDG_SESSION_TYPE" == "x11" ]; then
       export GTK_IM_MODULE=fcitx
       export QT_IM_MODULE=fcitx
fi
export XMODIFIERS=@im=fcitx

附加组件

在配置附加组建中可能需要更改的内容:
*在新的KDE输入法界面中需要先勾选下方显示高级选项才可以更改启用状态

云拼音:云拼音默认没有启用且默认后端是Google,需要启动并配置后端

KDE主题接管问题:plasma桌面会自动接管fcitx的主题设置,如果不希望如此,则需要在 输入法设置->附加组件->取消勾选KDE Input Method Pannel,在重新登陆后,输入法将遵循Classic User Interface的配置

英文与数字后不自动输入半角符号:附加组件-标点-字母或数字之后输入半角标点

我的偏好全局配置

#以下是我的fcitx配置方案,仅供参考#

默认页长度增加至7,增加中文分组,将所有中文输入法置于此而非默认分组。默认分组下永远不会输入中文,只有切换分组到中文后才可以输入中文。

  • 7
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值