[!重要]
该项目已迁移至 KDE 旗下,开发工作将在 https://invent.kde.org/office/crow-translate 继续进行。
Crow TranslateCrow Translate 是一个简单轻量的翻译器,使用 C++ / Qt 编写,允许您使用谷歌、Yandex、必应、LibreTranslate 和 Lingva 翻译 API 来翻译和朗读文本。 您可能还会对我在这个项目中使用的库 QOnlineTranslator 感兴趣。
Plasma
<p align="center"> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/efcfa580-ec36-49aa-8c39-a06fc343672f.png" alt="主界面"/> </p>Plasma Mobile
<p align="center"> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/dcdc374d-2c7b-43e6-94c1-c44d92652574.png" alt="主界面"/> </p>Windows 10
<p align="center"> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/41e181ac-f599-4da2-a350-7b9f3aa24582.png" alt="主界面"/> </p>您可以在设置中更改它们。由于操作系统限制,某些按键序列可能不可用。
Wayland 不支持全局快捷键注册,但您可以使用 D-Bus 在系统设置中绑定操作。对于支持额外应用程序操作的桌面环境(例如 KDE),您将在系统快捷键设置中看到预定义的快捷键。您也可以在 X11 会话中使用它们,但需要在应用程序设置中禁用全局快捷键注册以避免冲突。
| 按键 | 描述 |
|---|---|
| <kbd>Ctrl</kbd> + <kbd>Alt</kbd> + <kbd>E</kbd> | 翻译选中的文本 |
| <kbd>Ctrl</kbd> + <kbd>Alt</kbd> + <kbd>S</kbd> | 朗读选中的文本 |
| <kbd>Ctrl</kbd> + <kbd>Alt</kbd> + <kbd>F</kbd> | 朗读选中文本的翻译 |
| <kbd>Ctrl</kbd> + <kbd>Alt</kbd> + <kbd>G</kbd> | 停止朗读 |
| <kbd>Ctrl</kbd> + <kbd>Alt</kbd> + <kbd>C</kbd> | 显示主窗口 |
| <kbd>Ctrl</kbd> + <kbd>Alt</kbd> + <kbd>I</kbd> | 识别屏幕区域的文本 |
| <kbd>Ctrl</kbd> + <kbd>Alt</kbd> + <kbd>O</kbd> | 翻译屏幕区域的文本 |
| 按键 | 描述 |
|---|---|
| <kbd>Ctrl</kbd> + <kbd>Return</kbd> | 翻译 |
| <kbd>Ctrl</kbd> + <kbd>R</kbd> | 交换语言 |
| <kbd>Ctrl</kbd> + <kbd>Q</kbd> | 关闭窗口 |
| <kbd>Ctrl</kbd> + <kbd>S</kbd> | 朗读源文本 / 暂停朗读 |
| <kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>S</kbd> | 朗读翻译 / 暂停 朗读 |
| <kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>C</kbd> | 复制翻译到剪贴板 |
该程序还具有控制台界面。
用法: crow [选项] 文本
| 选项 | 描述 |
|---|---|
-h, --help | 显示帮助信息 |
-v, --version | 显示版本信息 |
-c, --codes | 显示语言代码 |
-s, --source <代码> | 指定源语言(默认情况下,引擎会尝试自动确定语言) |
-t, --translation <代码> | 指定目标语言,多个语言用'+'分隔(默认使用系统语言) |
-l, --locale <代码> | 指定翻译器语言(默认使用系统语言) |
-e, --engine <引擎> | 指定翻译引擎('google'、'yandex'、'bing'、'libretranslate'或'lingva'),默认使用Google |
-p, --speak-translation | 朗读翻译结果 |
-u, --speak-source | 朗读源文本 |
-f, --file | 从文件读取源文本。参数将被解释为文件路径 |
-i, --stdin | 将标准输入数据添加到源文本 |
-a, --audio-only | 使用--speak-translation或--speak-source时只打印用于朗读的文本 |
-b, --brief | 只打印翻译结果 |
-j, --json | 以JSON格式打印输出 |
**注意:**如果不向程序传递启动参数,将启动图形 用户界面。
io.crow_translate.CrowTranslate
├── /io/crow_translate/CrowTranslate/Ocr
| └── 方法 void io.crow_translate.CrowTranslate.Ocr.setParameters(QVariantMap parameters);
└── /io/crow_translate/CrowTranslate/MainWindow
| # 全局快捷键
├── 方法 void io.crow_translate.CrowTranslate.MainWindow.translateSelection();
├── 方法 void io.crow_translate.CrowTranslate.MainWindow.speakSelection();
├── 方法 void io.crow_translate.CrowTranslate.MainWindow.speakTranslatedSelection();
├── 方法 void io.crow_translate.CrowTranslate.MainWindow.playPauseSpeaking();
├── 方法 void io.crow_translate.CrowTranslate.MainWindow.stopSpeaking();
├── 方法 void io.crow_translate.CrowTranslate.MainWindow.open();
├── 方法 void io.crow_translate.CrowTranslate.MainWindow.copyTranslatedSelection();
├── 方法 void io.crow_translate.CrowTranslate.MainWindow.recognizeScreenArea();
├── 方法 void io.crow_translate.CrowTranslate.MainWindow.translateScreenArea();
├── 方法 void io.crow_translate.CrowTranslate.MainWindow.delayedRecognizeScreenArea();
├── 方法 void io.crow_translate.CrowTranslate.MainWindow.delayedTranslateScreenArea();
| # 主窗口快捷键
├── 方法 void io.crow_translate.CrowTranslate.MainWindow.clearText();
├── 方法 void io.crow_translate.CrowTranslate.MainWindow.cancelOperation();
├── 方法 void io.crow_translate.CrowTranslate.MainWindow.swapLanguages();
├── 方法 void io.crow_translate.CrowTranslate.MainWindow.openSettings();
├── 方法 void io.crow_translate.CrowTranslate.MainWindow.setAutoTranslateEnabled(bool enabled);
├── 方法 void io.crow_translate.CrowTranslate.MainWindow.copySourceText();
├── 方法 void io.crow_translate.CrowTranslate.MainWindow.copyTranslation();
├── 方法 void io.crow_translate.CrowTranslate.MainWindow.copyAllTranslationInfo();
└── 方法 void io.crow_translate.CrowTranslate.MainWindow.quit();
例如,你可以使用dbus-send显示主窗口:
dbus-send --type=method_call --dest=io.crow_translate.CrowTranslate /io/crow_translate/CrowTranslate/MainWindow io.crow_translate.CrowTranslate.MainWindow.open
或者通过qdbus:
qdbus io.crow_translate.CrowTranslate /io/crow_translate/CrowTranslate/MainWindow io.crow_translate.CrowTranslate.MainWindow.open # 或更简短的 qdbus io.crow_translate.CrowTranslate /io/crow_translate/CrowTranslate/MainWindow open
Wayland不提供全局快捷键的API,你需要自己注册它们。
KDE有一个方便的功能,可以在.desktop文件中定义快捷键并在设置中导入。这些快捷键默认已启用并应该可以正常工作。
对于GNOME,你需要手动将D-Bus命令设置为全局快捷键。例如,要翻译选定的文本,请使用以下命令:
qdbus io.crow_translate.CrowTranslate /io/crow_translate/CrowTranslate/MainWindow translateSelection
你可以在GNOME系统设置中为此命令设置热键。
本项目使用以下作为git子模块包含的外部库:
bundled了Fluent图标主题,以在Windows上提供图标和在Linux上提供备用图标。