pot-desktop README

The project's README from github.com/pot-app/pot-desktop. As one markdown file: README.md.

Pot (派了个萌的翻译器)

🌈 一个跨平台的划词翻译软件 (QQ 频道)

License Tauri JavaScript Rust Windows MacOS Linux



中文 | English | 한글

目录

使用说明

划词翻译 输入翻译 外部调用
鼠标选中需要翻译的文本,按下设置的划词翻译快捷键即可 按下输入翻译快捷键呼出翻译窗口,输入待翻译文本后按下 回车 翻译 通过被其他软件调用实现更加方便高效的功能, 详见 外部调用
剪切板监听模式 截图 OCR 截图翻译
在任意翻译面板上点击左上角图标启动剪切板监听默认,复制文字即可完成翻译 按下截图 OCR 快捷键后框选需要识别区域即可完成识别 按下截图翻译快捷键后框选需要识别区域即可完成翻译

特色功能

支持接口

翻译

更多接口支持见 插件系统

文字识别

更多接口支持见 插件系统

语音合成

更多接口支持见 插件系统

生词本

更多接口支持见 插件系统

插件系统

软件内置接口数量有限,但是您可以通过插件系统来扩展软件的功能。

插件安装

你可以在 Plugin List 查找你需要的插件,然后前往插件仓库下载插件。

pot 插件的扩展名为 .potext, 下载得到.potext文件之后, 在 偏好设置-服务设置-添加外部插件-安装外部插件 选择对应的 .potext 即可安装成功,添加到服务列表中即可像内置服务一样正常使用了。

故障排除

插件开发

在 Plugin List 中的 模板 章节提供了各种插件的开发模板,具体的开发文档请查看对应的模板仓库。

安装指南

Windows

通过 Winget 安装

winget install Pylogmon.pot

手动安装

  1. 在 Release 页面下载最新 exe 安装包。

    • 64 位机器下载 pot_{version}_x64-setup.exe
    • 32 位机器下载 pot_{version}_x86-setup.exe
    • arm64 机器下载 pot_{version}_arm64-setup.exe
  2. 双击安装包进行安装。

故障排除

MacOS

通过 Brew 安装

  1. 添加我们的 tap:
brew tap pot-app/homebrew-tap
  1. 安装 pot:
brew install --cask pot
  1. 更新 pot
brew upgrade --cask pot

手动安装

  1. 从 Release 页面下载最新的 dmg 安装包。(如果您使用的是 M1 芯片,请下载名为pot_{version}_aarch64.dmg的安装包,否则请下载名为pot_{version}_x64.dmg的安装包)
  2. 双击下载的文件后将 pot 拖入 Applications 文件夹即可完成安装。

故障排除

Linux

Debian/Ubuntu

  1. 从 Release 页面下载最新的对应架构的 deb 安装包。

  2. 使用 apt-get 进行安装

    sudo apt-get install ./pot_{version}_amd64.deb
    

Arch/Manjaro

[!WARNING] 在最新版本的 Webkit2Gtk (2.42.0) 中,由于 Nvidia 专有驱动未完全实现 DMABUF,将导致无法启动和崩溃的情况发生。
请降级或在 /etc/environment (或者其他设置环境变量的地方)中加入 WEBKIT_DISABLE_DMABUF_RENDERER=1 环境变量关闭 DMABUF 的使用。

  1. 在 AUR 查看

使用 AUR helper 安装:

yay -S pot-translation # 或 pot-translation-bin

# paru -S pot-translation # 或 pot-translation-bin
  1. 如果你使用 archlinuxcn 源,可以直接使用 pacman 安装
sudo pacman -S pot-translation

Flatpak

[!WARNING] Flatpak 版本缺失托盘图标。

Download on Flathub

外部调用

Pot 提供了完整的 HTTP 接口,以便可以被其他软件调用。您可以通过向 127.0.0.1:port 发送 HTTP 请求来调用 pot,其中的port是 pot 监听的端口号,默认为60828,可以在软件设置中进行更改。

API 文档:

POST "/" => 翻译指定文本(body为需要翻译的文本),
GET "/config" => 打开设置,
POST "/translate" => 翻译指定文本(同"/"),
GET "/selection_translate" => 划词翻译,
GET "/input_translate" => 输入翻译,
GET "/ocr_recognize" => 截图OCR,
GET "/ocr_translate" => 截图翻译,
GET "/ocr_recognize?screenshot=false" => 截图OCR(不使用软件内截图),
GET "/ocr_translate?screenshot=false" => 截图翻译(不使用软件内截图),
GET "/ocr_recognize?screenshot=true" => 截图OCR,
GET "/ocr_translate?screenshot=true" => 截图翻译,

示例:

不使用软件内截图

这一功能可以让您在不使用软件内截图的情况下调用截图 OCR/截图翻译功能,这样您就可以使用您喜欢的截图工具来截图了,也可以解决在某些平台下 pot 自带的截图无法使用的问题。

调用流程

  1. 使用其他截图工具截图
  2. 将截图保存在 $CACHE/com.pot-app.desktop/pot_screenshot_cut.png
  3. 向127.0.0.1:port/ocr_recognize?screenshot=false发送请求即可调用成功

$CACHE为系统缓存目录,例如在 Windows 上为C:\Users\{用户名}\AppData\Local\com.pot-app.desktop\pot_screenshot_cut.png

示例

在 Linux 下调用 Flameshot 进行截图 OCR:

rm ~/.cache/com.pot-app.desktop/pot_screenshot_cut.png && flameshot gui -s -p ~/.cache/com.pot-app.desktop/pot_screenshot_cut.png && curl "127.0.0.1:60828/ocr_recognize?screenshot=false"

现有用法 (快捷划词翻译)

SnipDo (Windows)

  1. 从 Microsoft Store 下载安装 SnipDo。
  2. 从 Release 下载 pot 的 SnipDo 扩展 (pot.pbar)
  3. 双击下载的扩展文件完成安装。
  4. 选中文字,可以看到弹出的 SnipDo 工具条,点击翻译按钮即可翻译。

PopClip (MacOS)

  1. 从 App Store 下载安装 PopClip
  2. 从 Release 下载 pot 的 PopClip 扩展 (pot.popclipextz)
  3. 双击下载的扩展文件完成安装。
  4. 在 PopClip 的扩展中启用 pot 扩展,选中文本即可点击翻译。

Starry (Linux)

Starry 目前仍处于开发阶段,因此您只能手动编译它。

Github: ccslykx/Starry

Wayland 支持

由于各大发行版对于 Wayland 的支持程度不同,所以 pot 本身没法做到特别完美的支持,这里可以提供一些常见问题的解决方案,通过合理的设置之后,pot 也可以在 Wayland 下完美运行。

快捷键无法使用

由于 Tauri 的快捷键方案并没有支持 Wayland,所以 pot 应用内的快捷键设置在 Wayland 下无法使用。 您可以设置系统快捷用 curl 发送请求来触发 pot,详见外部调用

截图无法使用

在一些纯 Wayland 桌面环境/窗口管理器(如 Hyprland)上,pot 内置的截图无法使用,这时可以通过使用其他截图工具代替,详见 不使用软件内截图

下面给出在 Hyprland 下的配置示例(通过 grim 和 slurp 实现截图):

bind = ALT, X, exec, grim -g "$(slurp)" ~/.cache/com.pot-app.desktop/pot_screenshot_cut.png && curl "127.0.0.1:60828/ocr_recognize?screenshot=false"
bind = ALT, C, exec, grim -g "$(slurp)" ~/.cache/com.pot-app.desktop/pot_screenshot_cut.png && curl "127.0.0.1:60828/ocr_translate?screenshot=false"

其他桌面环境/窗口管理器也是类似的操作

划词翻译窗口跟随鼠标位置

由于目前 pot 在 Wayland 下还无法获取到正确的鼠标坐标,所以内部的实现无法工作。 对于某些桌面环境/窗口管理器,可以通过设置窗口规则来实现窗口跟随鼠标位置,这里以 Hyprland 为例:

windowrulev2 = float, class:(pot), title:(Translator|OCR|PopClip|Screenshot Translate) # Translation window floating
windowrulev2 = move cursor 0 0, class:(pot), title:(Translator|PopClip|Screenshot Translate) # Translation window follows the mouse position.

国际化(Weblate)

贡献者

手动编译

环境要求

Node.js >= 18.0.0

pnpm >= 8.5.0

Rust >= 1.80.0

开始编译

  1. Clone 仓库

    git clone https://github.com/pot-app/pot-desktop.git
    
  2. 安装依赖

    cd pot-desktop
    pnpm install
    
  3. 安装依赖(仅 Linux 需要)

    sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev libayatana-appindicator3-dev librsvg2-dev patchelf libxdo-dev libxcb1 libxrandr2 libdbus-1-3
    
  4. 开发调试

    pnpm tauri dev # Run the app in development mode
    
  5. 打包构建

    pnpm tauri build # Build into installation package
    

感谢

pot-desktop (pot-app/pot-desktop)

Searching Database…

19.4K ·GitHub
archived
这是干什么的?Pot 是一款跨平台桌面翻译工具:在屏幕上任意位置选中文字,按一下快捷键,马上就能得到翻译。它还支持截图 OCR、文字转语音,以及把生词导出到 Anki 等背单词软件。
它是桌面软件,还是在浏览器里运行的东西?是一款原生桌面应用,支持 Windows、macOS 和 Linux,基于 Tauri 构建(网页界面加 Rust 后端)。README 说它支持所有 PC 平台,包括 Linux 上的 Wayland 会话。
各个平台分别怎么安装?Windows:用 winget,或者从 Releases 下载 exe 安装包(有 x64、x86 和 arm64 版本)。macOS:从 Releases 下载 dmg,或者通过项目自带的 tap 用 Homebrew 安装。Linux:可以用 deb 包、Arch 上的 AUR 或 pacman,也可以用 Flatpak。
它支持哪些翻译服务?我需要自己准备 API 密钥吗?内置了十多个翻译服务,从 Google、Bing、DeepL、Yandex 到百度和有道,还有 OpenAI、Gemini Pro、智谱 AI 这类大模型服务。大模型服务需要用你自己的 API 密钥;Ollama 则可以跑本地模型,另外还能通过插件接入更多服务。
在入手之前有什么要注意的坑吗?GitHub 仓库已经归档,不再更新——已安装的版本还能继续用,但不会有新功能了。在 Wayland 上,由于 Tauri 的限制,应用内快捷键无法使用,解决办法是设置系统快捷键来调用 pot 的本地 HTTP API;另外 Flatpak 版没有托盘图标。
有没有功能可以完全离线使用?有一部分可以:Ollama 能用本地模型翻译,各系统的系统级 OCR 引擎都能离线运行,Tesseract.js 是离线的,Rapid 和 Paddle OCR 插件也支持离线。云服务仍然需要联网。
插件系统是怎么运作的?内置服务是固定的,额外服务要靠插件来加:从 Plugin List 下载一个 .potext 文件,然后在“偏好设置 — 服务设置 — 添加外部插件”里安装,装好后它就和内置服务一样使用。在 Windows 上,如果插件加载报错,通常是缺少 C++ 运行库,或者插件的架构和系统不匹配。
其他软件能调用 Pot 吗?可以——pot 提供一个本地 HTTP API(默认端口 60828,可在设置里修改),任何程序都能调用它来执行划词翻译或 OCR。Windows 上的 SnipDo 和 macOS 上的 PopClip 都有现成的扩展,你也可以用自己的截图工具(比如 Flameshot)把截图喂给它,代替内置的截图功能。
它支持文字转语音或生词导出吗?都支持。TTS 内置了 Lingva,还可以通过插件接入更多语音引擎;生词也能导出到背单词软件——Anki 和欧路词典原生支持,有道和扇贝则需要装插件。
为什么叫 Pot?它是 Bob 的克隆吗?README 里提到,它的灵感来自 macOS 上很有名的翻译软件 Bob。Pot 把这种划词翻译的使用方式带到了 Windows、macOS 和 Linux 上。
Creator
pot-app
Size
79.5 MB
Stars
19.4K
Age
3y
Commits · 90 Days