rime / weasel

【小狼毫】Rime for Windows
https://rime.im
GNU General Public License v3.0
4.38k stars 540 forks source link

請問詞典擴展包是否會在重新部署時自動編譯,還是說需要手動編譯? #1355

Open chinanoahli opened 3 weeks ago

chinanoahli commented 3 weeks ago

上报前请检查

操作系统信息

我參考了 wiki 的 辭典擴展包 頁面嘗試製備辭典,但是發現配置完成後,重新部署也不能生效,搜索部署log,也沒有任何關於我製作的辭典包的信息

似乎與 #696@rime/home 有關,曾經可以自動編譯辭典擴展包,但現在似乎不可以了?

我已嘗試過把辭典擴展包放置於 %AppData%/Rime%AppData%/Rime/build %AppData%/Rime/build/bin 這三個目錄中,均無法通過自動部署觸發構建

luna_pinyin_packs.schema.yaml:

# Rime schema
# encoding: utf-8

schema:
  schema_id: luna_pinyin_packs    # 這個參數在wiki頁面中沒有具體說明,不確定是需要用戶新指定還是需要參照rime自帶的schema,所以照抄wiki了

translator:
  dictionary: luna_pinyin_packs    # 這個參數在wiki頁面中沒有具體說明,不確定是需要用戶新指定還是需要參照rime自帶的packs,所以照抄wiki了
  packs:
    - test_pack

test_pack.dict.yaml:

---
name: test_pack
version: "2024.08.23"
sort: by_weight
use_preset_vocabulary: false
...

# 技能
大絕  da jue
# 省略剩餘內容
chinanoahli commented 3 weeks ago

經過對比有提到的issue以及一些別人分享的配置庫,得出解決辦法

首先應在 XXXXschema.custom.yaml (如rime配置根目錄下的 luna_pinyin.custom.yaml )追加:

patch:

# 自定義詞庫
  translator:
    dictionary: dictName

然後定義詞典擴展包文件 dictName.dict.yaml

---
name: dictName
version: "2024.08.23"
sort: by_weight    # 按權重排列詞彙(必須,否則會造成候選詞排序錯亂)
use_preset_vocabulary: true    # 沒有找到相關說明(必須)
import_tables:      # 這裏應當通過 import_tables 來引用 rime 的自帶詞庫(或第三方詞庫),若你不想整個詞庫從頭設計的話
  - luna_pinyin
...

# 下列是自造詞列表
詞彙1 chihui
詞彙2 chihui
chinanoahli commented 3 weeks ago

請問 use_preset_vocabulary: true 參數具體產生什麼作用?

lotem commented 3 weeks ago

詞典擴展包不與使用他的方案一同編譯,產出獨立的 .bin 文件與其他詞典文件組合使用。

這項功能有兩個作用: 一是詞典包可以獨立製作、分發編譯好的二進制詞典文件;用家按需要在方案配置中增減擴展包,無需重新編譯詞典; 一是即使小範圍修改詞典內容,也只要更新主詞典或個別擴展包,而不必編譯全部數據。