← Back to articles

How I Translate Books

•tools
aitranslationtools

Читать на русском →

So, I have accumulated a collection of books that I've wanted to read for a long time, but my English skills aren't quite good enough to comfortably read them in the original language. That's why I decided to use modern approaches to solve this problem.

For this, I needed some ingenuity, a few million tokens, and some tools that I will talk about below.

Background

Since one of my hobbies is beatmaking, while studying it, I couldn't find adequate materials in Russian. There is a lot of worthwhile material in English, but the problem is that my English is at the level of reading technical documentation. Therefore, armed with Cursor AI and some Skills, I decided to translate the books I needed.

Finding PDF versions was not difficult for me. Next, I create a new project and drop my pdf book into the root (the format of the book doesn't really matter; you can work with any other format).

The Translation Process

After that, I run the pdf-book-to-md skill, which reads the book and converts it into markdown files in the book-md/ directory. After the conversion, I get structured text. Next, there are two paths: a cheap and manual one, or a slightly more expensive but semi-automatic one.

The Cheap Path This is when I don't feed all the files to the model for translation. Instead, I go to the web version of Gemini, upload the file to it, and run the GEM translator. It translates the file for me, then I copy the text and paste it into a file in the book-md-ru/ directory, and so on for all the files. One at a time.

For this, I use the following prompt (skill) for Gemini:

**Role:**  
Act as a highly qualified translator with expert knowledge of English and Russian. You have a deep understanding of linguistics, cultural nuances, and writing styles.

**Context:**  
You need to translate the provided text from English to Russian. The translation must be accurate, stylistically refined, and adapted to the cultural characteristics of the target audience. Return the result in a markdown block.

**Key Objective:**  
Create a high-quality translation of the text while maintaining:
- **Semantic accuracy**
- **Stylistic and genre consistency**
- **Cultural sensitivity**
- **Smoothness and naturalness of the Russian language**

**Format:**  
- Markdown format, preserving the original formatting.
- If there were tags for links to images or other files, keep them as is.

The Semi-Automatic Path I run the translate-en-ru skill, select the Gemini 3.1 Pro model (since it translates better than the others), and choose a directory (or translate everything file by file). Here, of course, your subscription tokens will fly away very fast. That's why I mostly choose the first option.


Auditing and Editing

When I have translated the book, I then check if the structure of the book matches the original. Sometimes the model can mess up the markup, links, and text, especially if the files are large. For this, I run an agent with the audit-en-ru skill, whose goal is to check the structure of the translation files against the original, and if there are errors, to fix them. Once the agent has finished its work, I get a structured book without layout errors, breaks, and other artifacts.

And at the final stage, I run the editor. This is an agent with the edit-ru skill, which cleans up the text, adapting it for a Russian-speaking person, while leaving slang and terms in their original form.

Used Skills

In the end, agents with the following skills participate in the translation of the book:

  • pdf-book-to-md — parses PDF books into Markdown by chapters. Writes to book-md/, images to book-md/images/. File names: 01-chapter-title. Preserves formatting, does not summarize the text.
  • translate-en-ru — translates English text into Russian (a single file or an entire directory). Writes to a parallel path *-ru (e.g., book-md/ → book-md-ru/). Preserves markup, style, and terms.
  • audit-en-ru — compares the Russian Markdown with the English source. Looks for broken layouts, missing parts, and obviously incorrect translations. First, it only provides a report; edits are made only after your approval. It does not touch the style or "how to say it better."
  • edit-ru — literary editing of the already translated Russian text: so that it reads naturally, without calques, but without losing the meaning and the author's voice. It does not change slang and technical terms. Also, first a report, edits only after approval.

Full workflow

From a source file to a finished book it looks like this:

  1. I create a new project in Cursor and put the source book in the root. The format does not matter: PDF, EPUB, or anything else.
  2. I run pdf-book-to-md. The output is a book-md/ directory with chapters in Markdown and images in book-md/images/.
  3. I translate the chapters into book-md-ru/. Either one file at a time through the Gemini web app with the prompt above, or the whole directory at once through translate-en-ru on Gemini 3.1 Pro.
  4. I run audit-en-ru: first I look at the report, then I confirm the fixes. This step catches layout breaks, missing pieces, and obviously bad translations.
  5. I run edit-ru: again a report first, then edits. The text starts to read naturally for a Russian-speaking reader, while slang and terms stay as in the original.

After the fifth step I have a structured Russian book that I can actually read.

Conclusion

As a result, it takes me an average of 4 hours per book, including proofreading and a quick check. You can see the result here: books.clipline.ru/ru

If you need the skills or access to the library, email me.

Share