Mintimate / oh-my-rime

The Simple Config Template Of Rime By Mintimate. QQ Chat-Group: 703260572
https://www.mintimate.cc
GNU General Public License v3.0
2.69k stars 182 forks source link

关于OpenCC,如何添加自定义词库? #128

Closed gsuns closed 2 months ago

gsuns commented 2 months ago

我在Rime\opencc\目录下创建了 custom.jsoncustom.txt custom.json内容是:

{
    "name": "custom",
    "segmentation": {
      "type": "mmseg",
      "dict": {
        "type": "text",
        "file": "custom.txt"
      }
    },
    "conversion_chain": [{
      "dict": {
        "type": "text",
        "file": "custom.txt"
      }
    }]
}

custom.txt内容是:

嘛   嘛 ㄇ

当上述操作完成后,我点击了 重新部署 随后我开启Emoji 后,输入ma 没有显示 嘛 ㄇ 后来我又做了测试,在 Rime\opencc\spoken.txt中添加就能显示嘛 ㄇ.长远考虑(后期更新不会被覆盖),是否可以自定义OpenCC 词库? 其实我本不使用 Emoji,只是没有想到更好的方法 简繁切换,如果有更好的方法请给我点提示,感谢

Mintimate commented 2 months ago

创建custom.jsoncustom.txt后,还需要在方案内部注册并添加到switchesengine/filters里面。

举例,创建custom_cc.txt:

嘛   嘛 ㄇ

custom_cc.json内引入:

{
    "name": "Custom for OpenCC",
    "segmentation": {
        "type": "mmseg",
        "dict": {
          "type": "text",
          "file": "custom_cc.txt"
        }
      },
    "conversion_chain": [
        {
            "dict": {
                "type": "group",
                "dicts": [
                    {
                        "type": "text",
                        "file": "custom_cc.txt"
                    }
                ]
            }
        }
    ]
}

最后,在方案内注册,以小鹤双拼为例,double_pinyin_flypy.custom.yaml:

# Rime Custom
# encoding: utf-8

patch:
  "switches/+":
    - name: custom_opencc
      reset: 1
      states: [ "关","开"]
  "engine/filters/+":
    - simplifier@custom_opencc                # 添加自定义 opencc
    - lua_filter@*tag_user_dict               # 标记用户的短语和词典
  # 自定义 opencc
  custom_opencc:
    opencc_config: custom_cc.json
    option_name: custom_opencc
    tips: all
    inherit_comment: false

为了方便后续更新,使用custom文件覆写,而没有使用schema,参考: https://www.mintimate.cc/zh/guide/configurationOverride.html

最后的效果:

custom文件内部 重新部署后的效果
gsuns commented 2 months ago

image 经过我多次测试终于成功了,没想到少2个空格就不行(左图), 感谢!!!!!!!!!!!

gsuns commented 2 months ago

附上我自用的配置,也许能帮助到其他人 文件路径Rime\目录下 以薄荷全拼为例,需要新建rime_mint.custom.yaml文件,内容如下:

# Rime Custom
# encoding: utf-8

patch:
  switches:                   # 注意縮進
    - name: ascii_mode
      reset: 1                # reset 0 的作用是當從其他輸入方案切換到本方案時,
      states: [ 中文符号, 英文符号 ]  # 重設爲指定的狀態,而不保留在前一個方案中設定的狀態。
    - name: full_shape        # 選擇輸入方案後通常需要立即輸入中文,故重設 ascii_mode = 0;
      states: [ 半角, 全角 ]  # 而全/半角則可沿用之前方案中的用法。
    - name: transcription
      states: [ 简体 , 繁体 ]
      reset: 0
    - name: emoji_suggestion
      states: [ "❌","😁️"]
      reset: 0
    - name: custom_opencc
      reset: 0
      states: [ "custom_opencc关","custom_opencc开"]

  "engine/filters/+":
    - simplifier@custom_opencc                # 添加自定义 opencc
  # 自定义 opencc
  custom_opencc:
    opencc_config: custom_cc.json
    option_name: custom_opencc
    tips: all
    inherit_comment: false

  #覆写候选词数量
  "menu/page_size": 10