Closed Geistyp closed 7 years ago
等,直到词库编译完毕。
知道大概需要编译多长时间?只有第一次这样吗?是否有编译好的词库文件下载?
大概几分钟吧,配置没变的话只要一次。
initializing...
message: [0] [deploy] start
message: [0] [deploy] success
ready.
是這樣設計的,方案部署完成之前引擎無法工作,控制檯程序就要等在那裏,不是卡死。 啓用的方案、詞典越多,部署所花的時間越長。 實際的輸入法則是直接返回輸入的字符,並在後臺線程做部署。
@osfans 我有意向把部署改成惰性的,如果要投入使用的配置或詞典需要更新,就暫時停用加載他的模塊,在後臺部署,完成後通知該模塊啓用。但這個又是個要通盤考慮的工程,而且未必有多少看得見的改進。 好處是各個模塊負責管理自己的資源,沒有全局的部署操作,框架擴展性更好。
release能很快的编译出来,但是debug 2个小时也还一直卡在那里
換個小方案呢?打開全部log看看? 我的android版,在destroy時會卡住。但deploy沒有問題,幾分鐘就好。
release编译出来的debug能用就好了,现在比较头痛的是没有文档或者例子告诉我如何使用rime_api.h,比如我要切换简繁
rime->set_option(session_id, "simplification", true);
RimeStatus已经显示is_simplified,但是输出的还是繁体
要把opencc的數據和配置都放在opencc目錄。
目录结构是什么样的?我尝试把opencc/data目录下的文件都拷贝到应用程序的根目录,也试过放到opencc的目录底下,但是opencc依然无法正常工作,也没有任何提示
參考我這個: 注意裏面是ocd文件和json文件
https://github.com/osfans/android-rime/releases/download/v3.0-alpha/rime.zip
情况依旧(我需要把默认的.txt改成.ocd吗?),我发现我直接使用opencc
opencc_t t2s = opencc_open(OPENCC_DEFAULT_CONFIG_TRAD_TO_SIMP);
返回的是 0xffffffff,似乎opencc无法正常初始化
用 opencc_error() 看到错误了
Invalid format: Invalid OpenCC dictionary header
ocd是從txt生成的,arm版和x86版的ocd格式應該不一樣,所以要生成你自己的ocd
我使用你的ocd后能用opencc_convert_utf8()将繁体转换为简体了,不过rime设置
session_id = rime->create_session();
rime->set_option(session_id, "simplification", true);
还是没有用。我设置后已经显示(我是在 rime_api_console 的例子的基础上修改的)
status: composing simplified
先不要直接改代码。看看你用的是哪个分支的代码,OpenCC 的版本,还有输入方案是怎么配置的(新旧 OpenCC 的配置方式不同)。
我用 develop 分支,OpenCC 1.2 的 ocd 文件,再改一改老旧的 luna_pinjin.schema.yaml
:
- options: [ zh_trad, zh_tw, zh_simp ]
states:
- 傳統漢字
- 臺灣正體
- 簡化字
reset: 2 # 直接改用简化字
测试结果:
initializing...
message: [0] [deploy] start
message: [0] [deploy] success
ready.
toufa
schema: luna_pinyin / 朙月拼音
status: composing
[tou fa]
page: 1 (of size 5)
1. [头发]〔頭髮〕
2. 投法
3. 偷发 〔偷發〕
4. 偷法
5. 头 〔頭〕
1
commit: 头发
schema: luna_pinyin / 朙月拼音
status:
(not composing)
建议先熟悉输入法的配置方式再研究代码。
@Geistyp
目录结构是什么样的?
我没细看代码,估计就和用户个人配置文件夹一样,对应 RIME 根配置路径。平時怎么配置 RIME 就怎么给 api console 配置。
rime_api_console
把共享文件夾和用戶文件夾都設爲當前工作目錄 .
,我一般這樣執行:
cd build/bin; Debug/rime_api_console
因爲數據都在 build/bin
目錄,所以以他爲工作目錄。
@jakwings 我用的分支也是develop,不过代码生成改成 /MD 的方式
- options: [ zh_trad, zh_tw, zh_simp ]
states:
- 傳統漢字
- 臺灣正體
- 簡化字
reset: 2 # 直接改用简化字
直接修改这个后有效了,非常感谢。另外,这个参数能使用 rime api来修改吗?
另外,这个参数能使用 rime api来修改吗?
试了下可以。zh_trad、zh_tw、zh_simp 应该是互斥的吧。噢,刚才又试了下,它们不是互斥的。
@jakwings 我試驗了下,雖然直接調set_option
設定不是互斥的,但是,F4調出來的菜單是互斥的。代碼中使用了radio單選類。
@osfans
我試驗了下,雖然直接調set_option設定不是互斥的,但是,F4調出來的菜單是互斥的。代碼中使用了radio單選類。
那看來是還沒有提供便利的 API……不用選單,用自定快捷鍵直接切換也是不互斥。 和你的另一個提問相關:#42 src/gear/switch_translator.cc
@Geistyp debug 版的 deploy 会比 release 版慢,但不至于卡住。通过 log 可以观察进行到哪个阶段。
release 版得到的二进制文件在 debug 版下也能用。
@osfans 提供的 OpenCC 链接已失效,更新链接: https://github.com/osfans/trime/releases/download/v3.0-beta/opencc.7z
或者从 OpenCC 编译得到,拷贝文件:
OpenCC\build\data\*.ocd -> librime\build\bin\opencc
OpenCC\data\config\*.json -> librime\build\bin\opencc
简繁切换除了 @jakwings 提供的方法,还有 set option
命令。比如 luna_pinjin.schema.yaml
的设置:
switches:
- options: [ zh_trad, zh_tw, zh_simp ]
states:
- 傳統漢字
- 臺灣正體
- 簡化字
在 rime_api_console
中可以这样:
set option zh_simp
这个问题还有进一步的反馈吗?
同样也编译运行过rime_api_console,控制台在显示
后,卡在那无法继续运行