QuickLang 是一款面向个人的英语学习应用,将单词背诵、听说训练和同声翻译放在同一个工作流中,支持 macOS 与 iPhone。
最初,因为孩子学习英语时常常磨蹭、背单词效率不高,我把自己学习单词的方法整理成了这个应用,希望让每一次练习更专注、学习成果更容易看到。
按当前 macOS 界面的 4 个功能分组、16 个二级菜单 展示(2026-10-10 更新;设置不展示截图)。每个一级菜单对应一个章节,二级菜单作为截图图注,每行最多展示三张。
学习进度、查询、单词练习和飘例句截图来自本机 macOS 应用,其余截图来自当前源码的 macOS 界面预览,使用展示数据。学习进度展示本机真实学习记录;单词与例句以熟悉的名词 family(家庭/家族)为例。图片显示宽度为 400 像素,高度按原图比例缩放;窄屏会进一步缩放,点击可查看原图。长内容在界面内部滚动。截图仅展示界面,不代表原生录音、识别或翻译服务的运行验收。
![]() 启动:选择音源和识别语言,通过系统浮层显示本地实时字幕;可选双语翻译,并在本机保存录音。 |
![]() 历史记录:回放本机录音,查看同一时间轴的原文与中文字幕,并生成会议纪要、润色或深度分析。 |
![]() 飘例句:按设定节奏自动展示并朗读双语例句,练习句子听读。 |
![]() 听说练习:围绕练习材料完成听写、理解题、录音跟读和脱稿表达。 |
![]() 听力训练:导入音频与字幕,通过精听、跟读、盲听和复述训练听力。 |
![]() AI 陪练:用文字或语音回答场景问题,获取表达反馈并继续回答追问。 |
![]() 查询:检索单词并查看释义、音标和例句。 |
![]() 词库维护:创建和编辑词书,在指定位置插入、编辑或删除单词及其资料。 |
「设置 → 导入导出」位于系统设置之后、关于 QuickLang 之前,可保存或系统分享当前用户备份,也可导入用户备份和生词表 JSON。用户备份导入前会预览并确认替换;备份不包含 API Key、录音、音频文件、设备权限或普通词书内容。
- 在“设置 → 用户设置”中创建或选择用户,再在“单词背诵 → 选书”中选择词书。
- 用自动飘单词或强化学习熟悉单词,再通过背诵、中文背诵检查记忆。
- 拼写错词会加入生词表;在“复习”中完成到期练习,或在生词表中选择单词提前练习。
- 使用 AI 陪练、远程转写或翻译前,在“设置 → 系统设置”配置相应模型与服务。
内置 14 本词书,包含初中、高中、四级、六级和考研词汇,并提供中文释义和双语例句;基础词书学习可以离线使用。AI 服务需要相应配置和网络,音频采集、录音和设备端识别还需要系统权限。
今日学习合计由背诵、中文背诵和正式复习组成,正式复习同一天同一单词只计一次;提前练习不计入该正式复习指标。总进度中的“复习”显示已掌握词数/生词表总词数,强化学习单独累计。
直接下载 QuickLang 1.0.0 ZIP。用户只需下载这一个 ZIP,校验文件可按需下载。
访问 GitHub Releases,以实际发布的安装包和平台说明为准。macOS 安装包解压后,将 QuickLang.app 放入应用程序目录;未经过 Apple 公证的开发包可能需要在系统隐私与安全设置中允许打开。
iPhone 的源码构建、签名和安装步骤见 iOS 开发指南。当前学习记录保存在设备本地,尚未提供自动跨设备同步。
“设置”还提供用户管理、系统配置和关于页面。不同用户分别保存学习记录;用户设置中的 JSON 备份包含用户设置、学习进度、大模型配置和完整生词表导出内容,不导出或替换普通词书内容;保留选书状态,学习进度恢复到当前已有或内置词书。完整生词表 JSON 导入会恢复词条顺序、排期、掌握状态、复习历史和会话;TXT 或单词列表导入只合并单词;生词表页面仍可单独导入、导出。
API Key、音频文件、录音和设备权限不包含在普通用户 JSON 备份中。导入前会预览并确认替换当前用户,其他用户不受影响;音频文件需要另行保存。只使用当前支持的备份结构,具体内容以导出和导入预览为准。
项目采用 Tauri 2、React / TypeScript、Rust;macOS 使用 seekdb,iOS 默认使用 SQLite,可通过 IOS_DB=SEEKDB 构建切换到 seekdb。当前源码版本为 0.9.2,macOS 包的最低系统版本按当前配置为 27.0,iOS 包配置为 18.0;各系统语音和采集能力还受设备及系统 API 支持限制。
准备 Node.js 22.12 或更高版本、Apple Command Line Tools,以及构建 iOS 所需的完整 Xcode。初始化脚本按项目锁定版本准备 Rust、npm 和原生数据库依赖;详情见 初始化与任务说明。
git clone https://github.com/longdafeng/quicklang_my.git
cd quicklang_my
make init
make build仅预览前端界面:
npm run dev浏览器预览默认地址为 http://127.0.0.1:1420,不替代桌面和手机原生存储、录音、识别及分享功能。
iPhone 默认使用 SQLite;通过环境变量 IOS_DB=SEEKDB 可在构建时选择 seekdb。构建需要 macOS 和完整 Xcode,首次使用先执行 make ios-init,并在 Xcode 配置 Apple 账号与签名。真机安装前需连接并解锁 iPhone,完成“信任此电脑”和开发者模式设置;签名与设备选择详见 iOS 开发指南。
# Default iPhone backend: SQLite
make build_ios
make release_ios
make install_ios
# Build and install iPhone apps with seekdb
IOS_DB=SEEKDB make build_ios
IOS_DB=SEEKDB make release_ios
IOS_DB=SEEKDB make install_ios
# Build a simulator app with seekdb
IOS_DB=SEEKDB IOS_TARGET=simulator make build_iosbuild_ios 构建 Debug,release_ios 构建 Release;install_ios 会构建或复用所选后端的 Release 产物,再安装并启动。也可通过 IOS_DB=SQLITE 显式选择 SQLite;值不区分大小写。后端选择参与构建缓存判定,切换时不会复用另一后端的应用产物。
使用 seekdb 前,需在本地 seekdb 项目中准备与真机或模拟器匹配的 SeekDB.framework。可通过 QUICKLANG_SEEKDB_IOS_FRAMEWORK 指定完整 framework 路径:
IOS_DB=SEEKDB \
QUICKLANG_SEEKDB_IOS_FRAMEWORK=/absolute/path/to/SeekDB.framework \
make install_iosQuickLang 会验证、打包并签名该 framework;缺少或不匹配时会停止构建,不会自动下载引擎或回退到 SQLite。默认产物位置与 framework 准备要求见 iOS seekdb 集成说明。默认 SQLite 构建无需准备该 framework。
SQLite 和 seekdb 分别使用设备沙箱中的 sqlite-relational-v3 与 seekdb-1.4.0-relational-v3 数据目录。切换后端不会自动迁移、删除或共享已有学习数据;此选择不改变 macOS 默认的 seekdb 后端。
| 命令 | 用途 |
|---|---|
make test |
检查格式并运行本地测试;真实 AI 模型测试需要测试配置。 |
make test-db |
运行真实数据库持久化、并发和回滚测试。 |
make review |
执行 Rust Clippy、类型检查和代码边界检查。 |
make format / make format-check |
格式化源码/检查源码格式。 |
make build / make release |
构建 macOS Debug/Release 应用。 |
make build_ios / make release_ios |
构建 iOS Debug/Release 应用。 |
IOS_TARGET=simulator make build_ios |
构建无签名的 iOS 模拟器 Debug 应用。 |
make install / make install_ios |
使用 Release 流程安装对应平台应用。 |
make test-apple |
执行 Apple 平台相关验证。 |
make docs / make docs-build |
启动文档站/构建静态文档站。 |
真实 AI 模型测试使用 .env.test:从 .env.test.example 复制后填写测试配置,再执行 npm run test:ai。该文件被 Git 忽略,请勿提交密钥。
开发时可用 QUICKLANG_DATA_DIR=/absolute/path 指定独立数据库目录,并在初始化及运行时保持一致;不要让两个原生进程同时占用同一个数据库目录。
| 目录 | 职责 |
|---|---|
src/ui/src/desktop/ |
macOS 界面、导航和同声翻译视图。 |
src/ui/src/ios/ |
iPhone 界面、导航和同声翻译视图。 |
src/ui/src/shared/ |
公共学习功能、用户设置、历史及原生通信。 |
src/app/ |
macOS / iOS 共用的 Tauri 原生宿主。 |
src/crates/ |
领域模型、复习排期、用例和数据库适配器。 |
src/server/ |
独立 HTTP 服务骨架。 |
tests/ |
UI、Rust、脚本和原生集成测试。 |
docs/ |
产品设计、开发说明、验证记录和界面截图。 |
正式复习与生词表通过原生事务保存卡片、排期和作答记录,普通学习页面也通过原生应用状态接口保存进度。录音二进制独立存储,具体机制见 模块说明。
QuickLang 自有代码采用 Apache-2.0 许可证;Ink-Learner 词库单独遵循 CC BY-SA 4.0,详见 词库署名说明。















