explaingit

viacheslavsysoev/perevodnik

14PythonAudience · developerComplexity · 3/5Setup · moderate

TLDR

An open-source tool that translates PDF technical books into browsable websites using Claude Code agents, maintaining a shared glossary across sections so terminology stays consistent throughout.

Mindmap

mindmap
  root((perevodnik))
    How it works
      Split PDF into sections
      One agent per section
      Shared glossary file
      Resume after pause
    Output
      MkDocs website
      Formulas preserved
      Edit via pull request
    Setup
      Claude Code subscription
      Python
      MkDocs
    Audience
      Technical readers
      Non-English speakers
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Translate a Russian technical programming book into English as a browsable website you can share with a team.

USE CASE 2

Convert a PDF textbook with math formulas into a navigable site with preserved equations and an edit button for corrections.

USE CASE 3

Add a new target language to perevodnik by copying a template folder and translating one guide file.

Tech stack

PythonMkDocsClaude Code

Getting it running

Difficulty · moderate Time to first run · 1h+

Requires an active Claude Code subscription (Max plan), no extra API cost but a daily usage limit applies per session.

No license information was mentioned in the explanation.

In plain English

Perevodnik (the Russian word for translator) is an open-source system that takes a PDF book as input and produces a translated, browsable website as output. It is designed to run on your own Claude Code subscription at no additional cost. The README frames the motivation plainly: technical knowledge published under open licenses is still inaccessible to people who do not read the language it was written in, and existing paid translation services handle technical content poorly. The core idea is to split a book into individual sections and assign one AI agent session to each section, rather than trying to translate the whole book in a single long conversation. A shared glossary file grows as each agent works through its section, so every subsequent agent sees the terminology decisions already made. The system also compares the extracted text against scanned images of each page, because text extraction tools tend to mangle mathematical formulas and figure references. The translation can be paused and resumed at any time. If your daily usage limit runs out partway through a book, you close the terminal and come back later. Running Claude Code in the project directory and typing "continue" is enough to pick up where the pipeline left off. The progress state is tracked through ordinary files in the project folder. The finished output is a website built with MkDocs, a documentation tool that renders nicely in a browser. Each section becomes a page, formulas are preserved, and there is an edit button on each page so readers can suggest corrections through a pull request. The README is written in Russian. Current language templates cover Russian and English, and the project notes that adding a new target language involves copying one template folder and translating a single guide file.

Copy-paste prompts

Prompt 1
Walk me through translating a 300-page Python PDF textbook from Russian to English using perevodnik. How do I split it, run the agents, and view the output site?
Prompt 2
My perevodnik translation ran out of daily Claude Code quota halfway through. How do I resume it without losing progress or re-translating completed sections?
Prompt 3
How does perevodnik's shared glossary work, and how do I add domain-specific terminology so all agents use the same translation for technical terms like 'gradient descent'?
Open on GitHub → Explain another repo

← viacheslavsysoev on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.