鱼头
AI编程

LanguageLearner

带翻译和练习题的外文PDF阅读器

LanguageLearner(LanguageLearning)

GITHUB链接

一个以“阅读原著 + 查词 + 复习 + 游戏化激励”为核心的移动端语言学习 APP(React Native,Android 优先)。本项目基于 设计文档.md 持续迭代,目标是交付一个可长期自用、可扩展到多语言、离线可用的学习工具。

核心理念

  • 在乐趣中学习:用成就/测验等轻游戏化方式降低坚持成本
  • 离线优先:能离线就离线;低配设备可切换到在线 API
  • 以个人学习为主:不做社交依赖,数据本地化优先

当前可用功能(持续迭代中)

阅读与导入

  • 书架:以封面形式展示书籍,封面下方显示阅读进度条
  • EPUB 导入:解析为“文本 + 插图”混排,阅读器沉浸式滚动阅读
  • PDF 导入:转为文本索引后阅读(扫描版 OCR 流程按设计在完善中)
  • 目录:右上角目录按钮,显示书中原始标题行并可跳转
  • 阅读进度:进入/退出自动保存,支持恢复到上次位置

查词与词本

  • 点击英文单词:弹出词卡(音标紧贴单词显示)
  • 本地词典优先:从离线词典 DB 获取音标/中文释义/词形
  • 词源/例句等扩展信息:支持本地大模型(Qwen3 GGUF)或在线 API(可选)
  • 词本:本地持久化;掌握度(0~5)与复习/测验联动

句子翻译

  • 长按句子:离线或在线进行句子翻译(实时流式输出)
  • 离线推理:支持 CPU / GPU(OpenCL) / NPU(HTP) / 自动回退

成就系统

  • 我的页展示“最近获得成就”
  • 成就页展示:已解锁/未解锁、解锁时间、完成条件与当前进度
  • 成就解锁通知:从屏幕顶部下拉提示,数秒后自动收起(点击可立即收起)

应用导航结构

  • 底部 Tab:书架 / 词本 / 我的
  • 我的:入口包含 设置(二级入口)与 成就
  • 设置 二级入口:
    • API 调用:在线查词/在线翻译开关 + Base URL / Key / model
    • 资源下载:离线模型下载/验证/删除 + 离线词典包下载/导入
    • 外观自定义:字体大小、背景/字体/标记颜色

离线词典包(强烈推荐)

为避免每次打包 APK 都携带超大的 SQLite(导致构建耗时/体积暴涨),词典库不再内置在 APK 中,而是单独以“离线词典包”导入一次即可:

  • 词典包格式:.llpack
  • 导入路径:App → 我的设置资源下载离线词典

离线大模型(可选)

低配手机可关闭离线模型,改用在线 API;高配设备可下载 GGUF 模型在本地推理:

  • 下载路径:App → 我的设置资源下载离线句子翻译模型
  • 推理后端:CPU / GPU(OpenCL) / NPU(HTP) / 自动
  • n_gpu_layers(offload 层数):用于控制 GPU/NPU 参与比例

在线 API(可选)

用于低配设备或网络环境下替代本地大模型:

  • 路径:App → 我的设置API 调用
  • 开关:查词走 API句子翻译走 API(打开后对应能力将优先走 API)
  • 兼容:OpenAI-like 的 POST /chat/completions(支持直接填写完整 .../chat/completions

工程结构

  • LanguageLearningMobile/:React Native 工程(Android)
  • 设计文档.md:需求与设计说明(成就/数据结构/交互规范等)
  • history.json:每次迭代的变更记录与构建产物索引
  • dist/:打包产物(APK、词典包等)

开发与构建(Windows)

环境依赖

  • Node.js(建议 >= 20)
  • JDK 17
  • Android SDK(platform-tools / Platform 36 / Build-Tools 35+)

安装依赖

LanguageLearningMobile/

npm install

运行(调试)

npx react-native start

另开终端:

npx react-native run-android

如需端口反向代理:

adb reverse tcp:8081 tcp:8081

构建 Release APK

(Windows 路径过长时建议用 subst 映射盘符)

subst L: F:\studying\ytf\LanguageLearning
L:\LanguageLearningMobile\android\gradlew.bat assembleRelease

输出:

  • LanguageLearningMobile/android/app/build/outputs/apk/release/app-release.apk

测试与安装

  • APK 一般输出/归档在 dist/
  • 安装到设备:
adb install -r dist\LanguageLearning_vX.Y.Z_release.apk

路线图(摘自设计)

  • 更稳健的 PDF 扫描版 OCR:裁剪/去页眉页脚、拼接、章节识别与定位
  • 更完整的成就池:阅读/词汇/游戏/连续/特殊/隐蔽 全量覆盖
  • 词性/短语类成就:动词/形容词/习语(依赖更可靠的词典字段/短语识别)
  • 更丰富的学习循环:挑战模式、经验值、连击奖励等

许可证

本项目采用 MIT License,见 LICENSE

GITHUB链接

2026年1月20日阅读 02收藏 0

评论

登录后才可以发表评论。
暂无评论。