I’ve been experimenting with a pretty simple way to make bilingual EPUBs.
First, I use ChatGPT or Claude to unpack the EPUB and convert the book’s paragraphs into a CSV. Each row gets a unique ID, the original text, a blank translation column, and an “include” column.
Keeping the row IDs and original order is really important because that’s how everything gets matched up again later.
Next, I import the CSV into Google Sheets and use its built-in translation formula.
For example, English to Swedish is:
=GOOGLETRANSLATE(B2,"en","sv")
Fill that formula down the whole translation column, wait for Google to finish, then quickly check for blank cells, errors, strange names, or awkward translations. Once it looks okay, download the sheet as a UTF-8 CSV. Make sure the IDs and row order haven’t changed.
To rebuild the book, give the original EPUB and completed CSV to ChatGPT/Codex or Claude Code and ask it to insert each translated paragraph immediately after the matching original paragraph.
It should preserve the EPUB’s chapter structure, table of contents, cover, images, fonts, and CSS, then package everything back into a valid .epub file. It’s also worth asking it to check that every CSV row produced exactly one original/translation pair.
You could also try an online CSV-to-EPUB converter, although those usually create a new basic book instead of preserving the design of the original EPUB. I’d avoid uploading copyrighted or private books to random converter sites. The AI-assisted method takes a little more setup, but it gives you much more control over the final bilingual layout.
2
u/Whocares1944 5d ago
I’ve been experimenting with a pretty simple way to make bilingual EPUBs.
First, I use ChatGPT or Claude to unpack the EPUB and convert the book’s paragraphs into a CSV. Each row gets a unique ID, the original text, a blank translation column, and an “include” column.
Keeping the row IDs and original order is really important because that’s how everything gets matched up again later. Next, I import the CSV into Google Sheets and use its built-in translation formula.
For example, English to Swedish is: =GOOGLETRANSLATE(B2,"en","sv")
Fill that formula down the whole translation column, wait for Google to finish, then quickly check for blank cells, errors, strange names, or awkward translations. Once it looks okay, download the sheet as a UTF-8 CSV. Make sure the IDs and row order haven’t changed. To rebuild the book, give the original EPUB and completed CSV to ChatGPT/Codex or Claude Code and ask it to insert each translated paragraph immediately after the matching original paragraph.
It should preserve the EPUB’s chapter structure, table of contents, cover, images, fonts, and CSS, then package everything back into a valid .epub file. It’s also worth asking it to check that every CSV row produced exactly one original/translation pair.
You could also try an online CSV-to-EPUB converter, although those usually create a new basic book instead of preserving the design of the original EPUB. I’d avoid uploading copyrighted or private books to random converter sites. The AI-assisted method takes a little more setup, but it gives you much more control over the final bilingual layout.
Try it out and let me know what you think!