小鹤双拼官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1270|回复: 5

Linux下fcitx-rime接挂小鹤音形 (解决无法正常使用的问题)

[复制链接]
发表于 2019-10-21 21:12:00 | 显示全部楼层 |阅读模式
emm……之前按着别人写的博客装,结果无法使用,选词有毁灭性的 Bug,发现果然还是自己解决比较好……

接下来我会详细叙述原理让不懂为什么的用户了解原因(不过大多数 Linux 用户应该都会自己解决掉)



首先到鹤大的网盘里下载 fcitx-rime 的接挂文件,然后解压。


你会发现解压出来的目录如下:


| default.yaml
| flypy.schema.yaml
| flypy……
| flypyplus.schema.yaml
| flypyplus……
\_build
   | flypy.table.bin
   | flypy……
   | flypyplus.table.bin
   | flypyplus……




其他文章都是直接将这些文件复制到 /usr/share/rime-data 下,个人建议不要这么做,不对这些默认配置做更改才是使用 Linux 该持有的谨慎态度。


这里建议将 default.yaml 重名名为 default.custom.yaml 。因为 rime 不仅会读取 default.yaml 作为自己的配置,同时还允许用户自定义一个不会改变原配置的 default.custom.yaml 作为覆盖,所以我们改成这个名字既可以保护原配置,也不会导致错误。


接着,我们将所有文件复制到 ~/.config/fcitx/rime 下,这里就是用户自己的配置文件夹。


这里,对于使用有问题的用户其实就会报个错,那就是 rime 部署时弹出 error 提示,不过之前初次使用时,因为能使用,只是 Bug 严重“而已”,觉得大概是输入法有问题或是自己搞错了,很可能下意识就忽略了。


实际上,这个 error 才是罪魁祸首!让我们打开 /tmp 下,rime.fcitx-rime 开头,并以 log.ERROR + 日期 结尾的日志文件,就会发现形如如下两行的内容:


E1021 19:55:48.464576 31050 deployment_tasks.cc:242] source file 'flypyplus.dict.yaml' does not exist.
E1021 19:55:48.492090 31050 deployment_tasks.cc:242] source file 'flypy.dict.yaml' does not exist.

我们接下来应该考虑:这是什么原因?

实际上,这基于 rime 的原理,那就是引用码表或词库时,需要一个格式符合要求的 dict.yaml 文件,而这个文件几乎是纯文本的,鹤大需要保密码表,所以显然不能放出来。

于是,基于 rime 对 .dict.yaml 文件的需求其实是需要用它来生成 .table.bin 等一系列的 bin 文件,而 bin 文件是不能读取的,所以鹤大选择直接把码表在 rime 下的最终编译产物放出来了,这也是没有问题的。

但为什么会出错呢?有了上面的知识,自然知道了:原因是 rime 没有检测到码表的 bin 文件!

知道原因就简单了,直接把 build 文件夹下的文件全部也提到 ~/.config/fcitx/rime ,即与 default.custom.yaml 同目录,然后重新部署即可,此时方能正常使用。

不要问我这么简单的步骤为什么废话了这么多,既然看到这里了,你大概也是没注意到这 “简单的一步” 的,所以我只是想把思考的过程写出来而已,渔重于鱼。

接下来就可以自行调配了,不过我问题不大,主要是主题文件里的 simplification 默认是繁体可还行 = =。将对应位置 reset 选项改为 0 即可。
回复

使用道具 举报

发表于 2019-10-22 10:20:54 | 显示全部楼层
提示一下build文件夹。
目前我所了解的win、安卓、ios、mac,等系统librime版本都已升级到1.5.3,这个版本(其实包含好几个之前版本)的bin文件是放在独立的build文件夹内的,而更早之前的版本才是和方案文件同目录的。
因此在我提供基础挂接文件时,也以为linux版的rime同样升级了librime版本,于是把bin文件放在了build文件夹内。
因此linux系统挂接rime请注意librime的版本号,至于这个版本号在linux的rime里如何查看我就不知道了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-22 16:57:58 | 显示全部楼层
散步的鹤 发表于 2019-10-22 10:20
提示一下build文件夹。
目前我所了解的win、安卓、ios、mac,等系统librime版本都已升级到1.5.3,这个版本 ...

我安装 fcitx-rime 是用的是 ubuntu 18.04 国内镜像,大概 fcitx 上的 rime 版本尚有落后,或是 18.04 的软件源不那么新吧。
回复 支持 反对

使用道具 举报

发表于 2019-12-18 17:42:14 | 显示全部楼层
散步的鹤 发表于 2019-10-22 10:20
提示一下build文件夹。
目前我所了解的win、安卓、ios、mac,等系统librime版本都已升级到1.5.3,这个版本 ...

我用的librime 1:1.5.3-4,依然会存在build下的码表无法识别报错问题。
  1. $ tail -f  rime.fcitx-rime.ERROR
  2. Log file created at: 2019/12/18 17:33:01
  3. Running on machine: maojun-pc
  4. Log line format: [IWEF]mmdd hh:mm:ss.uuuuuu threadid file:line] msg
  5. E1218 17:33:01.904620 19037 dict_compiler.cc:46] source file '/home/maojun/.config/fcitx/rime/flypy.dict.yaml' does not exist.
  6. E1218 17:33:01.916185 19037 dict_compiler.cc:46] source file '/home/maojun/.config/fcitx/rime/flypyplus.dict.yaml' does not exist.
  7. E1218 17:33:02.072552 19021 engine.cc:349] error creating translator: 'lua_translator'
  8. E1218 17:33:02.072582 19021 engine.cc:349] error creating translator: 'lua_translator'
复制代码


需要将build下的Bin文件移动到上层用户目录。
回复 支持 反对

使用道具 举报

发表于 2019-12-18 17:46:59 | 显示全部楼层
散步的鹤 发表于 2019-10-22 10:20
提示一下build文件夹。
目前我所了解的win、安卓、ios、mac,等系统librime版本都已升级到1.5.3,这个版本 ...

网盘的Linux版本被删除了吗?我现在只用用MACOS下的文件作为Linux下的挂接升级了。

另外,关于提供的Lua脚本,无法运行,我rime.lua文件同配置文件目录。

  1.   translators:
  2.     - punct_translator
  3.     - table_translator
  4.     - lua_translator@date_translator
  5.     - lua_translator@time_translator
  6.     - table_translator@custom_phraseXT
  7.     - table_translator@custom_phraseVD
  8.     - table_translator@custom_phraseYH
  9.     - reverse_lookup_translator
  10.     - history_translator@history
复制代码


配置文件地址:
  1. maojun at maojun-pc in ~/.config/fcitx/rime
  2. $ pwd
  3. /home/maojun/.config/fcitx/rime

  4. maojun at maojun-pc in ~/.config/fcitx/rime
  5. $ ll rime.lua
  6. -rw-r--r-- 1 maojun maojun 507 Dec 18 17:26 rime.lua
复制代码


LOG报错信息:
  1. E1218 17:33:02.072552 19021 engine.cc:349] error creating translator: 'lua_translator'
  2. E1218 17:33:02.072582 19021 engine.cc:349] error creating translator: 'lua_translator'
复制代码
回复 支持 反对

使用道具 举报

发表于 2019-12-18 17:49:32 | 显示全部楼层
感谢分享。

另有使用过LUA脚本挂载RIME吗?报错不知道如何配置。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|小鹤双拼

GMT+8, 2020-4-9 20:31 , Processed in 0.144882 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表