| 功能 | 描述 |
|---|---|
| 🎯 智能划词分析 | 选中英文单词/短语,AI 根据上下文提供准确释义 |
| 📝 长文本翻译 | 支持段落级别的中英翻译 |
| 📚 词汇收藏 | 一键保存单词到个人词库,支持标签分类 |
| 🧠 艾宾浩斯复习 | 科学的间隔重复算法,帮助长期记忆 |
| 🔗 原文定位 | 点击即可跳转到单词的原始出处并高亮 |
| 🌍 21 种界面语言 | 支持中文、英文、日文、韩文等多语言界面 |
| 🎨 深色模式 | 支持浅色/深色/跟随系统三种主题 |
| Provider | 说明 | 适用场景 |
|---|---|---|
| 🤖 Gemini API | Google 官方 API,免费额度充足 | 日常使用 |
| 🔧 OpenAI 兼容 | 支持各种 OpenAI 格式的 API | CLI Proxy、第三方服务 |
| 💻 本地模型 | 支持 Ollama、LM Studio 等本地部署 | 隐私优先、离线使用 |
- 克隆仓库
git clone https://github.com/YuancFeng/LearnWordsFromPage.git
cd LearnWordsFromPage- 安装依赖并构建
npm install
npm run build- 加载扩展
- 打开 Chrome,访问
chrome://extensions/ - 启用「开发者模式」
- 点击「加载已解压的扩展程序」
- 选择项目的
dist目录
- 打开 Chrome,访问
配置简单,适合大多数用户:
- 获取 Google AI Studio API Key(免费)
- 在扩展设置中选择「Gemini」
- 填入 API Key 即可使用
💡 提示: Gemini API 提供免费额度,足够日常学习使用。
适合使用 CLI Proxy 或其他 OpenAI 兼容服务的用户:
- 在扩展设置中选择「OpenAI 兼容」
- 配置 API 端点,例如:
- CLI Proxy:
http://localhost:8317/v1/chat/completions - 其他服务: 根据服务商提供的端点配置
- CLI Proxy:
- 填入模型名称和 API Key(如需要)
💡 CLI Proxy: 可以将 Claude CLI 等命令行工具转换为 OpenAI 兼容的 API 服务,详见 CLIProxyAPI。
适合注重隐私或需要离线使用的用户。本地模型完全在您的电脑上运行,数据不会上传到云端。
⚠️ 注意: 本地模型的响应速度取决于您的硬件配置,通常比云端 API 慢。
| 工具 | 默认端点 | 特点 |
|---|---|---|
| Ollama | http://localhost:11434 |
易用,模型丰富,跨平台 |
| LM Studio | http://localhost:1234 |
图形界面,适合新手 |
| llama.cpp | http://localhost:8080 |
轻量,高性能 |
TranslateGemma 是 Google 基于 Gemma 3 架构开发的专业翻译模型,针对翻译任务进行了专门优化。
| 模型 | 大小 | 内存要求 | 适用场景 |
|---|---|---|---|
translategemma:4b |
3.3GB | ≥8GB | 速度较快,日常查词 |
translategemma:12b |
8.1GB | ≥16GB | 翻译质量较好 |
translategemma:27b |
17GB | ≥32GB | 翻译质量最高 |
如果您已有其他模型或需要额外功能,这些通用模型也可使用:
| 内存 | 可选模型 | 模型大小 | 适用场景 |
|---|---|---|---|
| < 6GB | llama3.2:1b |
1.3GB | 基础查词,快速响应 |
| 6-8GB | llama3.2:3b |
2GB | 平衡速度和质量 |
| ≥8GB | llama3.2 |
4.7GB | 通用模型,功能全面 |
| Apple Silicon | qwen2.5:7b |
4.4GB | 中文优化 |
macOS:
# 1. 下载安装 Ollama
# 访问 https://ollama.ai/download 下载 .dmg 文件并安装
# 2. 下载模型(根据需要选择)
ollama pull translategemma:12b
# 或
# ollama pull llama3.2
# 3. Ollama 会自动在后台运行,无需额外启动Windows:
# 1. 下载安装 Ollama
# 访问 https://ollama.ai/download 下载安装程序
# 2. 打开命令提示符,下载模型
ollama pull translategemma:12bLinux:
# 1. 安装 Ollama
curl -fsSL https://ollama.ai/install.sh | sh
# 2. 下载模型
ollama pull translategemma:12b
# 3. 启动服务(如果未自动启动)
ollama serve- 打开扩展设置,选择 AI Provider 为「本地模型」
- 选择您使用的工具(如 Ollama)
- 端点会自动填充,确认模型名称(如
translategemma:12b) - 点击「测试连接」确保配置正确
- 保存配置
┌─────────────────────────────────────────────────────────────┐
│ 模型选择参考 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 您的内存有多少? │
│ │ │
│ ├── ≥16GB ──→ translategemma:12b (翻译质量较好) │
│ │ │
│ ├── 8-16GB ──→ translategemma:4b (速度较快) │
│ │ │
│ └── <8GB ──→ llama3.2:1b 或 llama3.2:3b │
│ │
│ 已有其他模型? │
│ │ │
│ └── 可以继续使用现有模型 │
│ │
└─────────────────────────────────────────────────────────────┘
🔒 隐私说明: 本地模型完全在您的设备上运行,不需要 API Key,翻译数据不会发送到任何服务器。
- 划词分析: 在任意网页选中英文单词,点击弹出的 🔍 按钮
- 查看结果: AI 会显示单词的释义、音标、词性和用法示例
- 保存单词: 点击「保存词汇」将单词加入个人词库
- 复习提醒: 扩展会根据艾宾浩斯曲线提醒你复习
| 功能 | 触发方式 |
|---|---|
| 长文本翻译 | 选中超过 100 字符的文本 |
| 跳转原文 | 在词库中点击单词的「跳转来源」 |
| 批量添加标签 | 进入批量选择模式后选择多个单词 |
| 双击查词 | 在设置中开启后,双击单词即可查询 |
| 设置项 | 说明 |
|---|---|
| 交互方式 | 双击查词、显示悬浮图标、复习提醒 |
| 外观 | 主题(浅色/深色/跟随系统)、界面语言 |
| 翻译语言 | 选择翻译目标语言(支持 30+ 种语言) |
| 黑名单 | 设置不启用划词的网站 |
| 标签管理 | 创建和管理词汇标签 |
LingoRecall AI 采用多层缓存架构,显著提升响应速度:
| 优化项 | 效果 | 说明 |
|---|---|---|
| AI 结果缓存 | 重复查询 <10ms | LRU 缓存,500 条目,24h TTL |
| 配置缓存 | 节省 10-30ms | 避免每次请求读取 storage |
| Prompt 优化 | 节省 100-300ms | 精简 token 数量 |
首次查询:1.5-2s → 1-1.5s (减少 20-30%)
重复查询:1.5-2s → <10ms (减少 99%+)
- 选择更快的模型:
gemini-2.0-flash-lite比其他模型更快 - 启用 GPU 加速: 本地模型确保安装了 GPU 驱动
- 使用云端 API: 相比本地模型,延迟通常更低
src/
├── background/ # Service Worker
│ ├── index.ts # 消息处理、AI 调用
│ ├── alarms.ts # 复习提醒调度
│ └── handlers/ # 业务处理器
├── content/ # Content Script
│ ├── index.ts # 文本选择检测
│ └── components/ # React 弹窗组件
├── popup/ # 扩展弹窗页面
│ └── components/ # 词库管理 UI
├── options/ # 全屏设置页面
│ └── components/ # 全屏词库 UI
├── services/ # AI 服务层
│ ├── aiService.ts # 统一 AI 接口
│ ├── geminiService.ts # Gemini API
│ ├── openaiCompatibleService.ts # OpenAI 兼容
│ ├── localModelService.ts # 本地模型服务
│ └── analysisCache.ts # 缓存模块
├── i18n/ # 国际化
│ └── locales/ # 21 种语言翻译文件
└── shared/ # 共享模块
├── messaging/ # 消息系统
├── storage/ # IndexedDB 存储
└── types/ # TypeScript 类型
| 类别 | 技术 |
|---|---|
| 前端框架 | React 19 + TypeScript 5 |
| 构建工具 | Vite 6 |
| 样式方案 | Tailwind CSS |
| 数据存储 | IndexedDB (idb) |
| AI SDK | @google/generative-ai |
| 国际化 | react-i18next |
# 开发模式(热更新)
npm run dev
# 构建生产版本
npm run build
# 运行测试
npm test采用艾宾浩斯遗忘曲线算法,科学安排复习时间:
| 复习次数 | 间隔时间 |
|---|---|
| 第 1 次 | 1 天后 |
| 第 2 次 | 2 天后 |
| 第 3 次 | 4 天后 |
| 第 4 次 | 7 天后 |
| 第 5 次 | 15 天后 |
| 第 6+ 次 | 30 天后 |
欢迎提交 Issue 和 Pull Request!
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/amazing-feature) - 提交更改 (
git commit -m 'Add amazing feature') - 推送到分支 (
git push origin feature/amazing-feature) - 创建 Pull Request
