关于GoldenDict等非云词典软件的数据同步机制

作为GoldenDict的重度用户,经常对跨设备的“收藏”难以方便同步而困扰。最近刚好使用 RIME 输入法,发现其与GoldenDict等非云软件有类似的情景:非云软件,但又很有必要同步用户动态词典(日常输入产生的习惯词典)和配置文档。而RIME有非常好的同步机制解决该问题。

希望可供各位开发者借鉴优化GoldenDict等非云词典软件的同步。

Rime没有云同步功能,但有本地同步功能,我们可以借助第三方云盘或FTP等实现个人词典
和配置方案在跨设备间的同步和备份。

1. 配置 installation.yaml 文档:
    * sync_dic: "/path/to/sync"
        - 如果不配置 sync_dic,那么 Rime 默认会在用户资料夹下生成一个 sync 目录。
    * installation_id: "my_computer_name_andsoon"
        - 默认地,每套 Rime 会为 installation_id 随机生成一个 UUID 作为标识,我
          们可以更改 installation_id 为更具有辨识性的名称,如A、B、C。建议命名
          只用英文本母、数字和下划线,不要用中文。
        - 不同 installation_id 可区分来自不同机器/系统的用户配置文档和用户动态
          词典。同步时,会创建文档夹 `sync/installation_id` 用于存放用户文档。
2. 同步用户动态词典和用户配置文档
    * 使用云同步软件同步sync目录,将跨设备用户动态词典快照和配置文件更新至本地。
    * 点击 `Rime/用户资料同步`,更新用户动态词典数据库 `*.userdb/`,并将最新的
      词典快照和用户配置文档单向更新至 `sync/本机的installation_id/`。
        - 依次將 sync 下各子文件夾中的詞典快照 `sync/A_B_C/*.userdb.txt` 合併到
          本机用戶动态詞典数据库 `*.userdb/`
        - 爲合併後的用戶动态詞典数据库生成一份新的快照文件 `*.userdb.txt`,同时
          把用戶文件夾中非自動生成的 YAML 文件及 .txt 文件單向備份到本机的同步
          文件夾 `sync/installation_id/`。
    * 再次使用云同步软件同步sync目录,将本机最新的用户动态词典快照和用户配置文
      档更新至云端。

* Official guide: https://github.com/rime/home/wiki/UserGuide#同步用戶資料

其核心理念其实与git几乎一致,只是不必有server端,只需借助任何 网盘、FTP 等即可实现同步。

词典软件不行动的话,词典制作者是无法达成的。

而收藏这种具有时效性的功能,依靠

是非常不现实,不及时的。。。

1 个赞

我们对及时性的要求并没有那么高,一天、一周甚至更长时间更新一次就可以,只求跨设备的收藏别丢失了。就像输入法的用户动态词典,并不需要实时同步,过一段时间同步一次足以。