开源日语轻小说自动翻译工具架构与部署实践
对于许多日语爱好者而言,阅读原版轻小说往往受限于语言门槛。这里分享一个基于 Docker 部署的开源解决方案,它支持网络小说、文库小说和本地文件的自动化抓取与翻译,能够构建完整的私有化阅读生态。
核心功能:采集与多引擎切换
这套系统的核心在于其灵活的采集与翻译能力。内置了对 Kakuyomu、小説家になろう等主流日本小说平台的支持,只需输入名称或 URL,系统即可智能解析并抓取内容。爬虫逻辑主要分布在 crawler/src/lib/domain/ 目录下,例如 kakuyomu.ts 和 syosetu.ts 针对不同网站结构做了适配。
在翻译环节,它集成了百度、有道、OpenAI 类 API 以及 Sakura 等多种引擎。这意味着用户可以根据需求在快速浏览和深度阅读之间切换。相关实现位于 web/src/domain/translate/ 目录,包含 TranslatorBaidu.ts、TranslatorOpenAi.ts 等模块,方便后续扩展。
除了在线抓取,系统还支持 EPUB/TXT 格式文件的本地上传处理。通过 web/src/pages/workspace/Toolbox.vue 中的文件处理功能,用户可以批量转换已有资源。阅读体验方面,提供了进度记忆、书架分类管理等功能,界面组件集中在 web/src/pages/bookshelf/ 下。
快速部署指南
项目采用容器化部署,依赖 Docker 和 Docker Compose。确保环境准备就绪后,执行以下命令拉取代码并启动服务:
git clone https://gitcode.com/GitHub_Trending/au/auto-novel
cd auto-novel
docker compose up -d
启动完成后访问 http://localhost 即可进入系统。基本操作流程如下:
- 选择'在线小说'或'本地文件'模式。
- 输入小说信息或上传文件。
- 配置翻译引擎参数。
- 开始任务并实时查看结果。
进阶使用与优化
术语表定制
为了保证专业术语的一致性,可以利用 web/src/pages/novel/WenkuNovelEdit.vue 中的术语管理功能创建专属词汇对照表。比如将'魔法→魔法'、'剣士→剑士'进行映射,避免机翻带来的违和感。
批量任务处理
如果需要同时处理多个翻译任务,可以借助 web/src/pages/workspace/ 目录下的 GptWorkspace.vue 和 SakuraWorkspace.vue。这些页面支持设置优先级并监控进度,适合大规模资源处理场景。
阅读体验调整
在阅读页面通过设置面板调整字体大小、行间距及背景色,或者导出为 EPUB 在其他设备阅读。相关配置保存在 web/src/stores/useSettingStore.ts 中,持久化存储用户偏好。
技术架构解析
项目采用前后端分离设计,整体架构清晰:
- 前端:Vue3 + TypeScript + Vite(代码位于
web/目录) - 后端:Kotlin + Spring Boot(代码位于
server/目录) - 数据存储:MongoDB + ElasticSearch(配置集成在
docker-compose.yml中)
核心模块职责分明:爬虫负责内容获取,翻译模块对接多引擎,存储层处理数据持久化,前端则提供所有交互界面。整个应用栈通过根目录的 docker-compose.yml 统一管理,实现了从依赖服务到业务逻辑的一键启动。
无论是追更网络小说还是处理本地资源,这套方案都能满足多样化需求。开源免费的特性配合简单的部署流程,让搭建属于自己的日语小说翻译平台变得触手可及。

