项目作者: bianjp

项目描述 :
Linux 下的划词翻译小工具
高级语言: Python
项目地址: git://github.com/bianjp/popup-dict.git
创建时间: 2017-12-13T02:35:48Z
项目社区:https://github.com/bianjp/popup-dict

开源协议:MIT License

关键词:
dict gui youdao

下载


popup-dict

Linux 下的划词翻译工具,支持使用有道等多种翻译服务。

使用 Python 3 + Gtk+ 3 编写,适用于 Gnome 桌面环境。

screenshots

功能特点:

  • 目前只支持英文->中文翻译,支持单词和短语
  • 主要针对 Gnome 桌面环境,不保证其它环境下的正常使用
  • 鼠标划词翻译,弹窗显示
  • 智能处理选中内容(去除两端非英文字符、压缩空白字符、删除换行符等)
  • 弹窗显示一段时间后自动关闭。若鼠标在弹窗中,延迟关闭
  • 点击弹窗中链接可打开有道词典网页版

本工具主要受 @idningyoudao-dict-for-ubuntu 启发。

依赖

安装

确保已安装 PyGObject

PyPI:

  1. sudo pip install popupdict

运行

  1. popup-dict
  2. # 查看帮助
  3. popup-dict -h

可使用 Gnome Shell Extension popup-dict-switcher 一键打开/关闭 popup-dict

配置

应用默认加载以下位置中第一个存在的配置文件:

  • ~/.config/popup-dict/config.ini
  • /etc/popup-dict/config.ini

也可通过命令参数指定配置文件位置。

注意:有道智云 API 是付费的,请自行注册账号、创建应用并配置 app_id, app_secret。参考官方文档

默认配置:

  1. [global]
  2. # 弹窗显示时间。单位:秒;类型:float
  3. popup_timeout = 3
  4. # 是否使用 Gtk Global Dark Theme。不设置或设为空则使用系统默认设置。类型: boolean
  5. prefer_dark_theme =
  6. # 调试模式
  7. debug = false
  8. # 缓存翻译结果和音频文件
  9. cache = true
  10. # 最大缓存条目数,仅针对单个查询客户端或发音下载器
  11. max_cache_items = 1000
  12. # 查询客户端配置
  13. [query]
  14. # 查询客户端 id
  15. client = youdao-zhiyun
  16. # 发音配置
  17. [speech]
  18. # 启用发音
  19. enabled = true
  20. # 自动播放
  21. auto_play = true
  22. # 发音客户端 id
  23. client = youdao
  24. # 各查询客户端的默认配置,可在各客户端的配置中覆盖
  25. [query-client]
  26. # 请求超时时间。单位:秒;类型:float
  27. request_timeout = 3
  28. # 各发音下载器的默认配置
  29. [speech-client]
  30. request_timeout = 5
  31. ##### 各查询客户端配置 ######
  32. # 有道词典网页版
  33. [query:youdao-web]
  34. # 有道智云
  35. # http://ai.youdao.com/doc.s#guide
  36. [query:youdao-zhiyun]
  37. app_id =
  38. app_secret =
  39. ##### 各发音客户端配置 ######
  40. [speech:youdao]

Todo

  • 实现有道词典网页版查询客户端
  • 根据选中文本位置而非鼠标位置定位弹窗(应对不用鼠标选中文本的情况;避免遮盖选中文本)
  • 支持 Wayland
  • 支持多显示器
  • 展示某些错误提示(比如 API 授权错误)
  • test
  • 进程退出时删除 pid 文件
  • 打包到 AUR
  • 版本更新提示
  • 实现 status, start, stop, restart 命令
  • 解决偶现的弹窗中列表显示异常
  • 选中内容在连字符(”-“)处换行时,区分是一个单词被断开还是本来就包含连字符的合成词
  • 生词本

类似工具

GUI:

Console:

License

This project is licensed under the terms of the MIT license.