- 优先使用 Gnome 原生/自带组件(Gtk+ 3, GStreamer)
- 系统依赖少(PyPI 包可以例外)
- 响应快(主线程不能阻塞或过于繁忙)
- 界面好看
- 方便扩展支持其它翻译服务
# 安装依赖
sudo pip install -r requirements.txt
# 以开发模式安装本包
# 可能需要 root 权限
sudo python setup.py develop
# 运行
popup-dict
# 卸载
sudo python setup.py develop --uninstall
- 更改版本号:
popupdict/__init__.py
- 添加更新日志
- 提交代码,并打标签:
git tag v0.1
- 确保工作目录干净,以免打包时把未提交的内容包含进去
发布到 TestPyPI:
正式发布到 PyPI 前,应先发布到 TestPyPI 测试
rm -rf dist/*
python setup.py sdist bdist_wheel
twine upload -r testpypi dist/*
发布到 PyPI:
rm -rf dist/*
python setup.py sdist bdist_wheel
twine upload dist/*
- 继承
AbstractQueryClient
,实现查询类 - 如果需要额外的配置项,增加配置类(继承
ClientConfiguration
),并在popupdict/config/default.ini
中添加默认配置 - 将查询类添加到
popupdict/query/client/__init__.py
中的valid_clients
- Gtk+ 3 非线程安全,因此只在主线程中渲染 UI
- 主线程中不能有阻塞的操作(如
time.sleep
, HTTP 请求等)
-
支持翻译其它语言
文本过短时难以准确识别语言(某些语言共用部分字符),而部分翻译服务要求指定源语言(如有道网页版)
-
进程退出时删除 pid 文件
尚未找到可靠的方式在进程收到 signal 时执行代码
-
动词的单三、进行时、过去式等形式,名字的复数形式,转为原始形式再查询,以获得更好的查询结果