A lot of books I want to read only exist in English — and reading in English at night, after a full day of work, is a double cognitive load: understanding the content and translating it at the same time. I fall asleep before making progress.
Google Translate and DeepL online don’t handle ePUBs. Online book translators have free tiers that are too limited and don’t integrate with my notes system. So I built my own.
Two tools, one flow
Book Translator — turns an ePUB into a bilingual version
- You import an ePUB file
- You select the chapters to translate (or the whole book)
- Translation starts via DeepL in batches of ~4,500 characters — with a real-time progress bar
- You download the bilingual ePUB: each text segment contains the original and its translation side by side
Reader — ePUB reader built into the Studio
- You import an ePUB (translated or not)
- You navigate chapter by chapter with the table of contents
- You switch between original language, translation, or side-by-side (bilingual) view
- Dark/light mode toggle for night reading
Tech stack
- Astro 5 —
/studio/book-translatorand/studio/readerpages (session cookie auth) - JSZip — client-side ePUB parsing (an ePUB is a ZIP) + translated file reconstruction
- DeepL text API — batch translation, 500k characters/month on the free tier (≈ 1–2 books)
- Ollama (optional) — dual mode: local translation running in parallel via
mistralor another model, no quota - SSE endpoint — streaming translation progress to the interface
Status
Delivered in April 2026. In personal use for books not translated into French.
V2 planned: connection with Knowledge Management (#8) — translated book → automatic addition to the Notion Reading Queue for concept note processing.
DeepL / Ollama dual mode: active since April 2026 — compare DeepL and local translation on each chapter.
Built for personal use. Accessible from the Ekenor Studio during reading sessions.