K4YT3X
所謂的正確之物會隨人們各自的意志而遷移無常
fcitx5-pinyin 批量导入搜狗词库
虽然 fcitx5-configtool 内可以为 fcitx5-pinyin 导入搜狗词库,但它并不能批量导入词库,因而特此写一篇教程记录下我研究出的批量导入搜狗词库的方案。

虽然 fcitx5-configtool 内可以为 fcitx5-pinyin 导入搜狗词库,但它并不能批量导入词库,因而特此写一篇教程记录下我研究出的批量导入搜狗词库的方案。

批量下载词库

批量下载词库的方法多种多样,在此我以 搜狗词库爬虫 (Sougou_dict_spider) 为例,批量下载所有词典。

批量转换为 libime dict

接下来将所有需要转换的词典收集到同一个目录下方便操作,下面的这条目录复制了所有官方推荐的词典到 recommended 目录下。命令中还用 -not 参数排除了几个不需要的类别。

1
find . -type f -iname '*官方推荐*.scel' -not -path "./436/*" -not -path "./403/*" -exec cp {} ~/sogou/recommended/ \;

接下来我们需要使用 fcitx5-chinese-addons 包提供的 scel2org5 命令将 scel 文件转成文本格式,再用 libime 提供的 libime_pinyindict 命令将 .txt 文本转换为 libime 可以识别的 .dict 格式。下面这个脚本可以批量转换当前目录下的所有 .scel 文件并将转换完的文件输出到 dict/ 子目录中。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
#!/usr/bin/python
# -*- coding: utf-8 -*-
import pathlib
import subprocess

for file in pathlib.Path("scel/").glob("*.scel"):
    subprocess.run(["/usr/bin/scel2org5", str(file), "-o", f"txt/{file.stem}.txt"])

for file in pathlib.Path("txt/").glob("*.txt"):
    subprocess.run(["/usr/bin/libime_pinyindict", str(file), f"dict/{file.stem}.dict"])

将 dict 文件导入 fcitx5-pinyin

词典的导入相当简单,只需要把转换完的 .dict 文件复制到 ~/.local/share/fcitx5/pinyin/dictionaries 即可。您可能需要重新加载 Fcitx5 来使新词典生效。


最后修改于 2022-04-09