跨平台 AI 翻译工具 · 基于 Tauri 2 + React 19 · 安装包约 10 MB
English · 中文
一款把大模型翻译做成顺手工具的桌面应用:统一接入 OpenAI / Claude / Ollama / DeepSeek,
支持划词翻译、截图 OCR 和文件翻译。所有配置集中在一个 config.toml 里,
手工编辑立刻生效,无需重启。
| 多模型统一接入 | OpenAI / Claude / Ollama / DeepSeek 一套接口,可同时配置多个模型随时切换。任何 OpenAI 或 Anthropic 兼容的中转服务,填 Base URL 即可用 |
| 流式输出 | 译文逐字返回,长文本不用干等 |
| 划词翻译 | 复制文本后按全局快捷键,无边框浮窗即时给出译文 |
| 截图 OCR | 框选屏幕区域识别并翻译。云端视觉模型 + 本地 Tesseract 双引擎,可切换、可自动回落 |
| 文件翻译 | 支持 .txt / .md / .srt,分块翻译带进度。字幕的序号与时间轴原样保留,只翻正文 |
| 配置即文件 | 全部设置存在 ~/.maoyi/config.toml,界面与文件双向实时同步 |
| 深浅色主题 | 跟随系统或手动指定 |
截图 OCR,双引擎可切换 |
文件翻译,字幕时间轴不受影响 |
多模型配置,支持自定义 Base URL |
浅色主题 |
到 Releases 下载对应平台的安装包:
- Linux —
.deb/.AppImage/.rpm - Windows —
.msi/.exe - macOS —
.dmg(Intel 与 Apple Silicon 分别提供)
发行版包管理器里装上 WebKitGTK(多数桌面版已自带):
# Debian / Ubuntu
sudo apt install libwebkit2gtk-4.1-0 libayatana-appindicator3-1
# 想用本地 OCR 再装 Tesseract(可选)
sudo apt install tesseract-ocr tesseract-ocr-chi-sim- 启动后点右上角 ⚙️ → 模型,填入 API Key
- 回到翻译页,输入文本,按
Ctrl+Enter - 想用划词翻译:选中任意文本按
Ctrl+C,再按Ctrl+Alt+T
所有设置都在 ~/.maoyi/config.toml(三个平台路径一致)。
保存文件后应用会自动重新加载,界面立即同步,不用重启;反过来在界面里改动也会写回该文件。
theme = "dark" # light | dark | system
default_source_lang = "auto"
default_target_lang = "zh"
auto_translate = false # 停止输入 0.8 秒后自动翻译
font_size = 15
minimize_to_tray = true
custom_prompt = "" # 留空用内置提示词;可用 {source} {target} 占位符
[ocr]
engine = "vision" # vision(云端视觉模型)| tesseract(本地离线)
fallback_to_local = true # 云端失败时自动回落本地
tesseract_langs = "chi_sim+eng"
[shortcuts]
enabled = true
translate_selection = "CommandOrControl+Alt+T"
screenshot_ocr = "CommandOrControl+Alt+S"
[[models]]
id = "claude-default"
name = "Claude Opus 5"
provider = "claude" # claude | openai | deepseek | ollama
model = "claude-opus-5"
base_url = "" # 留空用服务商默认地址
api_key = "sk-..."
is_default = true
supports_vision = true # 支持图像识别,可用于云端 OCR
[[models]]
id = "local-ollama"
name = "Ollama 本地"
provider = "ollama"
model = "qwen2.5:7b"
base_url = "http://localhost:11434"
api_key = "" # Ollama 不需要密钥
is_default = false
supports_vision = false
⚠️ API Key 以明文保存在此文件中。文件权限已自动设为0600(仅本人可读写), 但请勿将它提交到版本库或分享给他人。不希望密钥落盘可改用本地 Ollama。
把 base_url 指向兼容端点即可,provider 决定使用哪套协议:
provider = "claude"→ 走 Anthropic Messages API({base_url}/messages)provider = "openai"或"deepseek"→ 走 Chat Completions({base_url}/chat/completions)
pnpm install
pnpm tauri dev # 开发模式
pnpm tauri build # 打包当前平台
cargo test --manifest-path src-tauri/Cargo.toml --lib # 后端测试src/ 前端(React 19 + Tailwind 4 + shadcn/ui)
components/ 业务组件与 UI 基础件
hooks/ 配置、翻译、历史
lib/api.ts Tauri 命令封装
src-tauri/src/
providers/ 各模型服务商适配(统一 ChatRequest 接口)
config.rs TOML 配置读写与热重载
translate.rs 提示词与语言处理
screenshot.rs 跨平台区域截图
ocr.rs OCR 双引擎调度
file_translate.rs 文件分块与字幕结构保持
shortcuts.rs 全局快捷键与划词浮窗
截图调用系统原生工具,自带区域选择、在 Wayland 下也能正常工作:
| 平台 | 使用的工具 |
|---|---|
| Linux | spectacle(KDE)→ gnome-screenshot → grim+slurp → maim → import,按顺序探测 |
| macOS | screencapture -i |
| Windows | PowerShell 抓取虚拟屏幕 |
- 跨平台构建:Tauri 不支持交叉编译到 Windows / macOS,三平台安装包由 GitHub Actions
在各自的 runner 上构建(见
.github/workflows/release.yml),推送v*标签即自动出包。 - Wayland 下的划词:Wayland 不允许应用读取其他窗口的选中内容,因此划词翻译统一采用 「复制后按快捷键读剪贴板」的方式 —— 这在三个平台上行为完全一致,也最可靠。
MIT