Skip to content

Repository files navigation

🐱 猫译 MaoYi

跨平台 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
截图 OCR,双引擎可切换
文件翻译
文件翻译,字幕时间轴不受影响
模型配置
多模型配置,支持自定义 Base URL
浅色主题
浅色主题

安装

Releases 下载对应平台的安装包:

  • Linux.deb / .AppImage / .rpm
  • Windows.msi / .exe
  • macOS.dmg(Intel 与 Apple Silicon 分别提供)

Linux 额外依赖

发行版包管理器里装上 WebKitGTK(多数桌面版已自带):

# Debian / Ubuntu
sudo apt install libwebkit2gtk-4.1-0 libayatana-appindicator3-1

# 想用本地 OCR 再装 Tesseract(可选)
sudo apt install tesseract-ocr tesseract-ocr-chi-sim

快速开始

  1. 启动后点右上角 ⚙️ → 模型,填入 API Key
  2. 回到翻译页,输入文本,按 Ctrl+Enter
  3. 想用划词翻译:选中任意文本按 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

开发

需要 Node 22+pnpmRust

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-screenshotgrim+slurpmaimimport,按顺序探测
macOS screencapture -i
Windows PowerShell 抓取虚拟屏幕

说明

  • 跨平台构建:Tauri 不支持交叉编译到 Windows / macOS,三平台安装包由 GitHub Actions 在各自的 runner 上构建(见 .github/workflows/release.yml),推送 v* 标签即自动出包。
  • Wayland 下的划词:Wayland 不允许应用读取其他窗口的选中内容,因此划词翻译统一采用 「复制后按快捷键读剪贴板」的方式 —— 这在三个平台上行为完全一致,也最可靠。

许可证

MIT

About

🐱 跨平台 AI 翻译工具 · 划词翻译 / 截图 OCR / 文件翻译 · 支持 OpenAI、Claude、Ollama、DeepSeek · Tauri 2 + React 19

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages