我的词典:0.5.5
系列文章
- 我的词典:0.3.4开发手记
- 我的词典:0.5.5【当前文章】
- 我的词典:OCR识别服务
- 我的词典:OCR识别服务API
新增特性
支持谷歌翻译
测试中发现在线的有道翻译准确性实在有不敢恭维。应该是我用的api不是最新的导致的。官方也没有提供最新的API解决。从github上找了一下,发现有谷歌翻译的包。用起来也比较简单,参考文档py-googletrans.rtfd.io
支持选择在线翻译
之前的版本只有有道一个在线翻译,在设置界面只能选择本地词典,在线词典没有开关。本地更新把在线翻译也加入到开关中了。没有什么特别需要留意的。
性能改进
新增了谷歌翻译后发现,翻译速度大幅降低。原因很简单,谷歌翻译和有道翻译都是在线翻译,速度比较慢。尤其是谷歌翻译,大约要1~2秒才能返回结果。整个翻译过程就可能需要2~3秒了。只是不能忍的。
解决方法就是将所有的在线翻译改成异步请求。
原来的逻辑:
graph TB
查词-->查询有道-->查询谷歌
查询谷歌-->查询本地词典-->显示结果
改进后为:
graph TB
查词-->查询有道
查词-->查询谷歌
查词-->查询本地词典-->显示结果
查询有道-.->显示结果
查询谷歌-.->显示结果
启动本地词典的结果是立即显示的。过几百毫秒后,显示有道的结果;过1秒钟左右,显示谷歌的结果。
另外,返回结果越晚,显示顺序越往上。
因为是异步返回结果,也就可能出现,同一个词查询多遍,或者,结果返回时显示已经结束等问题需要留意处理。解决方法就是,翻译结果要带上源字符串,通过比对看是不是与当前显示的匹配,不匹配就抛弃掉。同样的,显示窗口记录下翻译来源,同样的翻译来源仅仅显示一次。
需要特别注意的是,同步改成异步还是做了不少结构上的调整的。为了方便以后扩展在线词典,界面层不再直接访问YouDaoFanYi
和Google
的后端类,而是通过统一的OnLine
类访问。
系列文章
- 我的词典:0.3.4开发手记
- 我的词典:0.5.5【当前文章】
- 我的词典:OCR识别服务
- 我的词典:OCR识别服务API