Closed amosbird closed 9 months ago
你的操作 不是很懂, env.mem 都沒有使用, 而是使用 DictEntry 建立Phrase struct DictEntry & class Code 我沒有涉略。
userdict 是tabledb (text) 可能要去查看 source code , 理論上,載入後應該就能工作,檔案更新時機可能在關閉檔案時才更新吧. tabledb 是文字檔 ,無法局部寫入,不可能每次commit就存檔
是否還有一個正字典翻譯器在使用同一個字典(script_translator@translator), env.mem(env.engine , Schema(....)) 和 目前方案相同嗎
env.mem 都沒有使用, 而是使用 DictEntry 建立Phrase
请问这里规范的使用方式是什么样的呢?
tabledb 是文字檔 ,無法局部寫入,不可能每次commit就存檔
我测试了 leveldb,行为是一样的,只有重启 fcitx 之后,之前 update_userdict 记录的生成词才会 flush 到对应的 ldb log 中。
是否還有一個正字典翻譯器在使用同一個字典(script_translator@translator),
目前在用的有:
translators:
- "lua_translator@baidu_translator"
- punct_translator
- reverse_lookup_translator
- script_translator
- "table_translator@custom_phrase"
其中 custom_phrase 有涉及到 user_dict,不过是不同的字典
custom_phrase:
db_class: stabledb
dictionary: ""
enable_completion: false
enable_sentence: false
initial_quality: 1
user_dict: custom_phrase
问题可能在这
dict.custom_code = input .. ' '
这样写会搞乱音节,必须一个音节加空格,除非是 table_translator
https://github.com/mirtlecn/rime-radical-pinyin/blob/master/lua%2Fsearch.lua#L122-L151
@mirtlecn 我将 custom_code
构建成了音节分割的形态,结尾带有空格,依然不行
@mirtlecn 确实是 custom_code
的问题。我在代码中打了一些日志发现结尾多了两个空格,是其他的配置导致的,调整后就正常了。感谢!
使用如下 lua 脚本生成词(
Ctrl-t
触发)主 translator 配置
当生成词 commit 之后,输入相同的 input 无法得到之前的词条作为 candidate,baidu.txt 文件中也没有对应的词条。 重启 rime 后,baidu.txt 中出现生成的词条,输入相同的 input 可以获得对应的词条。
@shewer 辛苦大佬指点一二