A bilingual book — a parallel text, a dual-language edition, a side-by-side — puts the original and a translation next to each other so you can glance across when a sentence stops making sense. Publishers have printed them for centuries, usually for Latin and Greek. What has changed is that you can now make one yourself, from a book of your own choosing, in an afternoon.
This guide covers the three ways people actually do it, what each costs in money and effort, and the legal question that most articles on this topic skip entirely.
First: the part nobody mentions
Translating a book creates a derivative work. Under the Berne Convention and the national laws that implement it, the right to authorise a translation belongs to the copyright holder — not to the reader who bought a copy.
That has a practical consequence. Making a bilingual edition of a book still in copyright, and then sharing it, is not something any tool can make lawful. The maintainers of the best-known open-source tool for this say so in their own README: use it only with material you have the right to translate — works you hold the rights to, suitably licensed or permitted works, public-domain books, or uses otherwise allowed by law.
So before you pick a method, sort out what you are allowed to translate:
- Public domain — anything on Project Gutenberg or Standard Ebooks. Copyright terms differ by country, so a book that is free in one place may not be in another.
- Your own writing — a manuscript, a company handbook, documentation you wrote.
- Openly licensed work — Creative Commons titles that permit derivatives.
- A book you have permission for — a publisher or author who has said yes in writing.
Reading a machine translation privately, for your own study, sits in a greyer area that varies by jurisdiction. Publishing or distributing one does not.
Method 1: bilingual_book_maker, the open-source route
bilingual_book_maker is a command-line tool by yihong0618 that reads an EPUB, sends each chunk of text to a translation model, and writes a new EPUB with the translation interleaved with the original. It also handles TXT, Markdown, SRT and PDF.
What you need
- Python and a terminal you are comfortable in
- An API key — it supports OpenAI- and Anthropic-format endpoints, and several machine-translation services including Google, DeepL, Caiyun, Tencent and Qwen
- Your own budget for whichever provider you choose, billed per token or per character
Running it
Install it from PyPI:
pip install -U bbook_maker
Then translate a book. The project's own basic example looks like this:
python3 make_book.py --book_name my_book.epub --provider openai --test --use_context session
If you installed the package with pip rather than cloning the repository, the README notes that every command becomes bbook_maker <args> instead of python3 make_book.py <args>.
The flags that matter most on a first run:
--testtranslates only the first few paragraphs. Use it every time you try a new book or a new model — it is the difference between finding a problem in ten seconds and finding it after you have paid to translate three hundred pages.--languagesets the target. It takes a tag (--language zh-hant), a name (--language "Traditional Chinese"), or both. The default iszh-hans, so set this unless Simplified Chinese is what you wanted.--parallel-workersprocesses several EPUB chapters at once. The project recommends 2 to 4 rather than as many as your machine will start.--resumepicks up after an interruption. Note the catch, which the README states plainly: it is mutually exclusive with--parallel-workers. If a parallel run dies halfway, you cannot simply resume it.--single_translateoutputs only the translated book, with no bilingual version — useful if you decide partway through that you wanted a plain translation after all.
What it is good at
Control. You pick the model, the prompt, the target language and the pace. It is also free software, so nothing about your book leaves your machine except the text you send to whichever model provider you chose. If that provider matters to you, you get to choose it — including a local model through Ollama, which sends nothing anywhere at all.
Where it gets in the way
It is a developer tool with a developer's assumptions. You will hit Python environments, API keys, rate limits and the occasional book whose markup confuses the chunker. If a chapter fails halfway, you rerun it. None of that is hard, but all of it is work, and it is work between you and reading the book.
Method 2: by hand, with Calibre
The manual route needs no API key at all. Calibre is a free ebook manager with a built-in editor, and the workflow goes like this:
- Open the EPUB in Calibre's editor and export each chapter as text.
- Translate a chapter at a time in whatever tool you prefer.
- Paste the translation back in, paragraph by paragraph, under each original paragraph.
- Rebuild the EPUB and check it in a reader.
The result can be very good, because a human is deciding where the paragraph boundaries fall and catching translations that drift. It is also slow. A 300-page novel is a weekend at best, and the paragraph-by-paragraph paste is exactly the kind of task where attention slips and two paragraphs end up misaligned twenty chapters in.
This method earns its place for short work — an article, a chapter, a children's book — or when a specific passage matters enough to translate carefully by hand.
Method 3: a hosted converter
The third route is to hand the file to a service that does the whole job: upload the book, choose a language, get a bilingual EPUB back. No Python, no API key, no paragraph-pasting.
What you are paying for is the parts that are tedious rather than difficult: keeping paragraphs aligned across a whole book, carrying terminology consistently from chapter one to chapter thirty, and rebuilding a valid EPUB at the end. This is what DualBook's EPUB translator does, and it is a paid product — we would rather say that plainly than pretend the comparison below is neutral. The first 20 percent of any book is free without a card, which is enough to judge the translation before you decide anything.
The three, side by side
| bilingual_book_maker | By hand in Calibre | Hosted service | |
|---|---|---|---|
| Setup | Python, terminal, API key | Install Calibre | None |
| Cost | Free tool, you pay the model provider | Free, but your time | A subscription or per-book fee |
| Time for a novel | Minutes to hours, mostly unattended | A weekend of real work | Minutes |
| Control over the model | Total | Total | Whatever the service uses |
| Alignment quality | Good; occasional drift on odd markup | As good as your patience | Handled for you |
| Best for | Developers, and anyone translating a lot of books | Short texts, or passages that matter | People who want to read, not tinker |
Check the result before you commit to a whole book
Whichever route you take, the output is a file that can be subtly wrong in ways you will not notice until chapter nine. Four checks, in the order worth doing them:
- Translate a sample first. With the open-source tool that is
--test; with a hosted service, use whatever preview it offers. Read the sample in the target language and decide whether the register is right before you pay for three hundred pages of it. - Check the alignment, in the middle. Open the finished file and jump to a chapter somewhere in the second half. Every translated paragraph should sit directly under its own original. If they have slipped by one, the whole rest of the book is off and no amount of reading will fix it.
- Count the chapters and open the table of contents. A translation run that failed on chapter twelve often produces a file that looks fine until you reach chapter twelve. The TOC is the fastest way to see the whole shape at once.
- Open it in a real reader. Not the tool that made it. Load it in your ereader or in a browser-based EPUB reader — a file that opens in the software that produced it and nowhere else is a file you cannot read on the device you own.
Two smaller things worth knowing about the open-source route. Its EPUB output adds a line below the book intro naming the model and the year that translated it, which --no_disclosure removes. And if one passage comes out wrong, --retranslate redoes that passage alone rather than the whole book.
Get the file into EPUB first
All three methods want EPUB going in. EPUB is a zip archive of XHTML documents, which means a tool can find the paragraphs and put a translation after each one. A PDF cannot offer that: it records where each character sits on a fixed page, with nothing saying which characters form a paragraph.
So if your book is in another format, convert it before you translate it, not after:
- PDF to EPUB — for anything exported from Word, InDesign or LaTeX. A scan will not work; there is no text in it to extract.
- Word to EPUB — for your own manuscript. Apply Heading 1 to your chapter titles first and the table of contents builds itself.
- MOBI to EPUB and AZW3 to EPUB — for old Kindle files. DRM-free only.
- TXT to EPUB — for the plain-text editions on Project Gutenberg.
Those converters run in your browser rather than on a server, so the file never leaves your machine. All of them are on the tools page.
Which layout should you choose?
Bilingual editions come in two shapes, and the right one depends on how well you read the source language.
Paragraph after paragraph
Each paragraph of the original is followed immediately by its translation. This suits readers who need the safety net often: your eye reaches the end of a paragraph, the meaning is right there, and you carry on. It is also the only layout that works comfortably on a phone, which is where most reading actually happens.
Side by side
Two columns, original left, translation right. This suits stronger readers who want to stay in the source language and glance across only when something snags. It needs a wide screen — on a phone the columns become unreadably narrow — and it is genuinely hard to produce as a file, because EPUB reflows text and true facing columns fight that. That is why most bilingual EPUBs you will find are stacked.
The way around it is to stop making the layout part of the file. A reader that holds both layouts can switch between them mid-chapter — columns while you work through a hard passage, stacked once the chapter opens up — which is what our bilingual reader does. Build the file if you want a file you own; use a reader if what you want is the reading.
Whichever you choose, read the original paragraph first and the translation second. The order matters: read the translation first and your eye will simply take the easy path every time, and you will finish the book having practised very little. Reading a book in a language you are still learning goes into the habits that make this work.
FAQs
Is bilingual_book_maker free?
The tool is open source and free to use. The translation is not: you supply an API key and pay whichever provider you pick, per token or per character. Costs vary enormously between a frontier model and a cheap machine-translation service, so run --test on one chapter before you commit to a whole book. The exception is a local model through Ollama, where the only cost is your own hardware and time.
Can I make a bilingual book from a PDF?
Convert it to EPUB first. A PDF has no paragraph structure for a translator to attach a translation to, and the results of translating one directly are usually a mess of interleaved fragments. If the PDF is a scan, there is no text at all — that needs OCR, which is a different job.
How long does a novel take?
It depends entirely on the model and the book, which is why the honest answer is to measure rather than guess: time one chapter, then multiply. A run with --parallel-workers at the recommended 2 to 4 will be several times faster than a sequential one, at the cost of not being able to resume it if it fails.
Do I have to make a file at all?
No. A file is worth making when you want to own it, read it offline, or put it on an ereader. If you only want to read the book on a screen you already have, a bilingual reader skips the whole build: it aligns the two texts for you and keeps your place, and there is nothing to rebuild when you want a different target language.
Will the translation be good enough to learn from?
For understanding what a sentence means, modern machine translation is more than good enough. For style, humour, wordplay and register it is not, and you should not assume that a joke that fell flat was flat in the original. Treat the translation as a safety net rather than as a second text worth studying in its own right.
Can I sell a bilingual edition I made?
Only if you hold the translation and publication rights to the original, or the book is in the public domain in the country where you are selling it. Making one for your own reading is a different matter from distributing it.
What about books I bought from a store?
Ebooks bought from Kindle, Kobo or Apple carry DRM and are locked to your account. No tool here opens them, and removing DRM is not something we help with. Work from DRM-free sources: your own writing, Project Gutenberg, Standard Ebooks, indie publishers, and the many technical publishers who sell unlocked files.
Keep reading
- How to read a book in a language you are still learning — what to do once you have the file.
- Best bilingual books for English learners — if you would rather buy one than build one.
- Graded readers vs authentic books — on choosing a book you can actually finish.
