我让小龙虾帮我写一个 mac 应用,实时翻译屏幕上我选中的英文
2026-05-24
我问:
我现在要做一个在我本机运行的捕捉屏幕上英文并连接大模型的应用,这个提供配置入口即可,让我能够实时看到:“简单英语”(通常指 基本英语 (Basic English))的发明人是英国语言学家和哲学家 查尔斯·凯·奥格登 (Charles Kay Ogden)
这种英语的翻译,让我秒懂。并且能够自动写入到 obsidian 中间去。如果同样的单词或者句子多次选中,那就在 obsidian 里记录下选中的时间,并显示选中次数,以此来反应我学习的进度。
你现规划下怎么做。
小龙虾答:
规划:ScreenEn → 秒懂英文 + Obsidian 学习追踪
核心流程
五个模块
1. 文本捕获(Capture)
全局快捷键触发(默认
Cmd+Shift+T,可配置)触发后模拟
Cmd+C,读取剪贴板内容备选方案:macOS Accessibility API 直接读取选中文字(更优雅但跨应用兼容性差,先用剪贴板方案)
2. LLM 翻译(Translate)
可配置项:API Endpoint、API Key、Model Name、自定义 Prompt
默认 Prompt 方向:不是逐字翻译,而是用最直觉的中文让用户秒懂
短词→给释义+一句话场景理解
长句→给中文意译+关键结构拆解
3. 浮窗展示(Overlay)
macOS 原生浮动窗口,置顶显示在屏幕右下角或光标附近
翻译结果停留 5-8 秒自动消失(可配置),鼠标悬停可保持
之前的结果可通过 menubar 图标历史记录回看
4. Obsidian 写入(Vault Writer)
每个 单词/短语/句子 对应 vault 里一个 markdown 文件
文件名:英文原文的 slug 形式(如
ubiquitous.md)首次:创建文件,写入释义、简单理解、选中时间
重复选中:追加时间戳,更新计数,不覆盖已有内容
Obsidian 文件结构示例:
单个文件内容:
5. 配置界面(Config UI)
macOS menubar 常驻图标,点击弹出配置面板
配置项:
LLM API Endpoint / Key / Model
翻译 Prompt 模板
Obsidian Vault 路径
快捷键
浮窗显示时长
最小捕获长度(避免误触发)
技术选型
| 层 | 选择 | 理由 |
|---|---|---|
| 语言 | Python 3 | 你 Mac 上直接跑,配置灵活,LLM 调用方便 |
| Menubar + 浮窗 | rumps + PyObjC | 原生 macOS menubar 应用,浮窗用 NSWindow |
| 全局快捷键 | pynput 或 PyObjC CGEvent | 跨应用全局监听 |
| LLM 调用 | httpx | 支持流式,OpenAI 兼容接口 |
| Obsidian 写入 | 标准文件 I/O | Obsidian 就读 markdown,直接写文件 |
| 配置存储 | YAML 文件 | 人工可读可改 |
目录结构
启动方式
需要你确认的点:
Obsidian vault 路径 — 你 vault 在哪个目录?
LLM — 你想接哪个?OpenAI 兼容接口?还是本地模型?
浮窗位置 — 右下角固定,还是跟光标走?
要不要 dashboard — Obsidian 里放一个
_dashboard.md汇总高频词、学习趋势?
发表评论: