Как перевести EPUB с помощью Calibre: установка плагина, режимы вывода и проверка файлов
Calibre переводит EPUB через сторонний плагин Ebook Translator. Установка, выбор движка и вывода, что версия 2.4.2 делает с разметкой и как проверить результат.

Calibre не переводит книги сам по себе. Вы переводите EPUB в Calibre с помощью Ebook Translator — стороннего плагина от bookfere, который есть в каталоге плагинов Calibre. Установите его через Настройки → Плагины → Получить новые плагины, выберите движок перевода, решите, нужен ли вам только перевод или он должен идти рядом с оригиналом, и запустите его на EPUB без DRM. В вашей библиотеке Calibre появится новый EPUB.
Установка — это быстрая часть. Большинство руководств умалчивают о том, что плагин делает с книгой по ходу дела. Мы изучили исходный код текущего выпуска (v2.4.2), чтобы выяснить это, и три настройки по умолчанию важнее, чем выбранный вами движок:
- По умолчанию вывод двуязычный. Каждый переведённый абзац размещается под оригиналом, если вы не измените настройку положения.
- Встроенное форматирование в переведённом тексте упрощается. Курсив, полужирный шрифт и ссылки внутри абзаца не переносятся в перевод. Защищается и восстанавливается только фиксированный список тегов, таких как изображения, разрывы строк и верхние индексы.
- Каждый запуск — это конвертация Calibre. Даже из EPUB в EPUB плагин передаёт книгу в конвейер конвертации Calibre, который пересобирает выходной файл.
Всё это не делает плагин плохим выбором. Он бесплатный, с открытым исходным кодом (GPL-3.0) и очень гибко настраивается. Но вам стоит знать, что проверить, прежде чем читать результат или делиться им.
Замечание о методе: это руководство основано на исходном коде плагина v2.4.2, его официальной документации и руководстве Calibre. Мы не запускали перевод с замером времени для этой статьи, поэтому она не содержит утверждений о скорости, качестве перевода или о том, какой движок даёт лучший результат.
Что нужно перед началом
| Требование | Подробности |
|---|---|
| Calibre | Версия 5.0.0 или более поздняя. Это минимум, указанный для v2.4.2 в каталоге плагинов Calibre, где дата выпуска указана как 7 августа 2026 г. |
| EPUB без DRM | Плагин работает с файлами книг в вашей библиотеке Calibre. Покупка в магазине, защищённая DRM, не переведётся. Сначала проверьте файл на наличие DRM. |
| Движок перевода | Некоторые движки работают без учётной записи (бесплатные конечные точки Google, DeepL и Microsoft Edge). Остальным нужен ключ API, и провайдер выставляет вам отдельный счёт. |
| Время на проверку | Планируйте прочитать и проверить результат. Плагин переводит абзац за абзацем. Это не этап проверки. |
Плагин также принимает другие форматы, которые может читать Calibre, например MOBI или AZW3. Поскольку книга в любом случае проходит через конвертацию Calibre, старт с чистого EPUB даёт наиболее предсказуемый результат.
Установите плагин Ebook Translator
Документация плагина предлагает два способа установки:
- Изнутри Calibre (рекомендуется): откройте Настройки → Плагины → Получить новые плагины, найдите Ebook Translator, нажмите Установить, затем перезапустите Calibre.
- Из файла: скачайте ZIP с домашней страницы плагина, затем выберите Настройки → Плагины → Загрузить плагин из файла и перезапустите программу.
Если плагин не появился на панели инструментов, добавьте его через Настройки → Панели инструментов и меню → Главная панель инструментов.
Calibre указывает автором плагина bookfere.com. Команда Calibre его не поддерживает. Сообщайте о проблемах в репозиторий плагина на GitHub, а не в Calibre.
Пакетный режим или расширенный режим
Плагин предлагает два способа запуска перевода:
- Пакетный режим: выберите одну или несколько книг, укажите целевой язык и формат вывода и нажмите Перевести. Задача выполняется в очереди заданий Calibre. Используйте этот режим для чернового перевода всей книги, которую планируете прочитать один раз.
- Расширенный режим: извлеките абзацы одной книги в таблицу, переведите все или только выбранные, отредактируйте любой перевод вручную, затем нажмите Вывод. Используйте этот режим, когда книга важна, например когда нужно перевести заново несколько глав или исправить имена, потому что вы можете исправить абзацы до создания EPUB.
Если вы всё равно будете проверять перевод, расширенный режим позволит внести правки прямо в плагине. В пакетном режиме их пришлось бы делать позже в редакторе Calibre.
Выбор движка перевода
По умолчанию используется бесплатный движок Google. Версия 2.4.2 предлагает следующие движки (названия приведены так, как они отображаются в плагине):
| Группа движков | Движки | Что требуется |
|---|---|---|
| Бесплатные, без ключа | Google (Free) в трёх вариантах, DeepL (Free), Microsoft Edge (Free) | Ничего; ограничения устанавливаются сервисом и могут меняться |
| API машинного перевода | Google (Basic), Google (Basic) ADC, Google (Advanced) ADC, DeepL, DeepL (Pro), Youdao, Baidu | Аккаунт и API-ключ или учётные данные Google Cloud для вариантов ADC; оплата по тарифам провайдера |
| LLM | ChatGPT (OpenAI), ChatGPT (Azure), Gemini, Claude (Anthropic), DeepSeek (Chat) | API-ключ; оплата за токены по тарифам провайдера |
| Пользовательские | Любая конечная точка HTTP, которую вы настроите | Собственный эндпоинт и разбор ответа |
Настройки по умолчанию, влияющие на длинную книгу:
- Интервал между запросами зависит от движка. В исходном коде v2.4.2 он составляет 20 секунд для ChatGPT (OpenAI и Azure), 12 секунд для Claude, 1 секунду для Gemini и DeepL (Free) и 0 для большинства остальных. В документации рекомендуется увеличить его, если сервис начинает отклонять запросы.
- Количество попыток — 3, а выполнение прерывается после 10 ошибок подряд. Установите количество прерываний равным 0, чтобы никогда не останавливаться автоматически.
- Тайм-аут также зависит от движка: 60 секунд для ChatGPT и DeepSeek, 30 секунд для Claude и Gemini и 10 секунд для остальных.
- Объединять для перевода выключено. Когда оно включено, плагин отправляет абзацы пакетами до 1 800 символов. Пакеты дают LLM больше окружающего контекста на запрос, но один плохой ответ тогда влияет сразу на несколько абзацев.
- Глоссарий выключен. Когда он включён, он читает текстовый файл. Термин и его перевод размещаются на двух строках, термин, который нужно оставить без перевода, — на одной строке, а записи разделяются пустыми строками.
Плагин бесплатный, но перевод не всегда бесплатен. Роман на 300 страниц, отправленный в платный API, оплачивается так же, как любое другое использование API. Наши руководства по ChatGPT, Claude и DeepSeek для перевода объясняют, в чём каждая модель обычно ошибается в длинных текстах.
Выберите вывод только на целевом языке или двуязычный
Настройка Позиция перевода определяет форму книги:
| Настройка | Результат | Подходит для |
|---|---|---|
| Под оригиналом (по умолчанию) | Сначала оригинальный абзац, затем его перевод | Изучающих язык и выборочной проверки |
| Над оригиналом | Сначала перевод, затем оригинал | Чтения на вашем языке с сохранением источника рядом |
| Слева / справа от оригинала (помечено как бета) | Каждая пара становится строкой таблицы с колонкой-разрывом | Только для широких экранов |
| Без оригинала | Перевод заменяет оригинал | Чтение переведённой книги |
Если вы хотите просто читать книгу, перед запуском измените положение на Без оригинала, потому что по умолчанию создаётся двуязычная книга.
Будьте осторожны с опциями слева и справа. В исходном файле каждая пара перестраивается в строку таблицы с тремя ячейками: оригинал, промежуток и перевод. При стандартном промежутке 10% текстовые столбцы имеют ширину по 45%. На телефоне или 6-дюймовой электронной книге это превращается в две узкие полоски текста. В нашем руководстве по двуязычным EPUB сравниваются двуязычные макеты, которые хорошо смотрятся на маленьких экранах.
Что плагин меняет внутри вашего EPUB
Именно эту часть обходят стороной обычные руководства. В таблице обобщено, что v2.4.2 делает с каждым типом содержимого, на основе исходного кода (lib/element.py и lib/conversion.py в теге v2.4.2).
| Содержимое в вашем EPUB | Что делает v2.4.2 | Что проверить |
|---|---|---|
| Абзацы, заголовки, блочные цитаты | Извлекаются и переводятся как единицы | Ничего не пропущено в начале и конце глав |
Блоки <pre> и <code> | Не переводятся (по умолчанию игнорируются) | Примеры кода остаются на исходном языке, что обычно правильно |
Курсив, полужирный, <span> и ссылки внутри абзаца | Текст переводится, но теги из перевода удаляются | Выделение, курсивные названия и внутритекстовые перекрёстные ссылки в переведённом абзаце |
Изображения, <br>, <hr>, <sub>, <sup>, <abbr>, <math>, <svg> и некоторые другие | Перед переводом заменяются заполнителями вроде {{id_00000}}, затем возвращаются обратно | Лишний текст {{id_…}} или пропавшие изображения, если движок изменил заполнитель |
| Маркер сноски, записанный как ссылка вокруг надстрочного знака | Сохраняется как одна защищённая единица | Ссылки на примечания по-прежнему ведут к примечаниям |
| Маркер сноски, записанный как ссылка без надстрочного знака | Ссылка уплощается, как и любая другая встроенная ссылка | Номера сносок, которые больше не являются ссылками |
Руби-аннотации (<rt>, <rp>) | Удаляются из текста, отправляемого на перевод | Фуригана или пиньинь в японских или китайских источниках |
| Абзацы, состоящие только из цифр и знаков препинания | Пропускаются | Номера страниц и разделители остаются как есть |
| Элементы оглавления | Переводятся | Названия глав в меню навигации читалки |
| Название, автор и другие метаданные | Переводятся только если вы включите перевод метаданных | Запись в библиотеке и отображаемое название книги |
Две из этих деталей вызывают наиболее заметные повреждения.
Почему исчезают курсив и ссылки. Для каждого абзаца плагин формирует текст для перевода из простого текста абзаца. Только теги из его защищённого списка заменяются плейсхолдерами. <em> или <a> не защищён и не игнорируется, поэтому его слова переводятся, а разметка теряется. В двуязычном режиме оригинальный абзац сохраняет форматирование, так что проблема видна только в переведённой строке. В режиме только перевода форматирование исчезает. Вы можете добавить селекторы в Reserve Element, но резервирование элемента оставляет его непереведённым. Это полезно для иностранных фраз или названий книг, которые вы хотите сохранить, и неправильно для выделения, которое вы хотите перевести.
Почему сноски могут сломаться. Издатели по-разному помечают ссылки на сноски. В плагине есть особый случай для ссылки, которая оборачивает только верхний индекс (<a href="#n1"><sup>1</sup></a>), и такая ссылка остаётся нетронутой. Ссылка, записанная как <a href="#n1" class="noteref">1</a>, не имеет верхнего индекса, поэтому номер сохраняется, а ссылка может и нет. Проверяйте сноски, прежде чем доверять переводу нон-фикшн только в целевом режиме. Для японских и китайских книг см. как переводить руби-аннотации EPUB, прежде чем решать, допустима ли потеря фуриганы.
Переведённый элемент также получает атрибут lang для целевого языка и атрибут dir, что помогает читалкам выбирать шрифты и раскладку справа налево. В двуязычном режиме перевод не копирует id оригинального элемента, поэтому существующие якоря по-прежнему указывают на исходный абзац.
Наконец, руководство по конвертации Calibre описывает, как работает конвертация: входные данные преобразуются в XHTML, трансформируются, а затем записываются плагином вывода. По пути преобразования Calibre могут заново сгенерировать метаданные и оглавление. Плагин переводит после этих преобразований, непосредственно перед тем как плагин вывода запишет файл. Таким образом, ваш переведённый EPUB — это пересобранная книга, а не ваш исходный файл с новым текстом. В руководстве Calibre отмечается, что её система конвертации «не является заменой полноценного редактора электронных книг».
Проверьте переведённый EPUB за пять минут
Не судите о результате по первой главе. Выполните структурное сравнение исходного и переведённого файла. EPUB — это ZIP-архив, поэтому стандартные инструменты командной строки могут подсчитать разметку с каждой стороны:
mkdir src out
unzip -q original.epub -d src
unzip -q translated.epub -d out
for tag in '<em' '<i[ >]' '<strong' '<a ' '<sup' '<img' '<rt'; do
s=$(grep -rhoE "$tag" src --include='*htm*' | wc -l)
o=$(grep -rhoE "$tag" out --include='*htm*' | wc -l)
printf '%-10s source=%-6s output=%s\n' "$tag" "$s" "$o"
done
grep -rho '{{id_[0-9]*}}' out | head
Как читать результат:
- Вывод только на целевом языке с гораздо меньшим числом тегов
<em>,<i>или<a, чем в исходнике, означает уплощённое выделение или ссылки. Это ожидаемо из-за описанного выше поведения. Решите, может ли книга обойтись без них. - Меньше тегов
<imgв выводе только на целевом языке означает, что плейсхолдер изображения был потерян. В двуязычном выводе изображения могут появляться дважды, поэтому полагайтесь на поиск плейсхолдеров. Найдите главу и исправьте её в расширенном режиме или в редакторе Calibre. - Любой текст вида
{{id_…}}означает, что движок изменил плейсхолдер, поэтому защищённый элемент не был восстановлен. - В двуязычном выводе должно быть как минимум столько же тегов, сколько в исходнике, поскольку оригинальные абзацы сохраняются.
Шаблон <em также совпадает с <embed, что редко встречается в книгах, но полезно знать, если счётчик выглядит странно.
Затем запустите EPUBCheck от W3C для переведённого файла. Откройте его в программе для чтения, которой вы действительно будете пользоваться, и проверьте контрольный список проверки перевода EPUB: навигацию, сноски, изображения и последний абзац каждой главы. Если книга предназначена для других людей, протестируйте её на Kindle, Kobo и Apple Books.
Если перевод остановился на середине
По умолчанию плагин кэширует переведённые абзацы. Если сеть пропала или движок начал отклонять запросы, запустите ту же книгу снова с теми же настройками. Уже кэшированные абзацы не переводятся повторно. На практике:
- Откройте журнал заданий в разделе Jobs и поищите повторяющиеся ошибки — обычно они указывают на троттлинг или истёкший ключ API.
- Увеличьте Interval или уменьшите Concurrency limit для этого движка.
- Перезапустите книгу. Кэш продолжит с того места, где остановился.
- Используйте Cache Manager, чтобы очистить кэш книги, только когда вы хотите получить свежий перевод, например после редактирования глоссария. Смена движка или целевого языка уже запускает отдельный кэш.
Когда Calibre — подходящий инструмент, а когда нет
Используйте плагин Calibre, когда:
- книга без DRM и уже находится в вашей библиотеке Calibre;
- вы хотите сами выбрать движок и платить за него;
- вы готовы просматривать абзацы в расширенном режиме; и
- книга в основном состоит из простого текста, поэтому потеря встроенного форматирования несущественна.
Ищите другой подход, когда:
- книга зависит от встроенного форматирования, перекрёстных ссылок или связанных сносок, как во многих учебниках и научных книгах;
- имена и термины должны оставаться согласованными на сотнях страниц, а вы не хотите сами вести файл глоссария;
- вы предпочли бы не заниматься проверкой и исправлением разметки самостоятельно; или
- вы не уверены в работе с ключами API, ограничениями скорости и журналами заданий.
Если второй список описывает вашу книгу, один из вариантов — загрузить EPUB в BookTranslator и посмотреть цену до оплаты. Для завершённых задач доступны как перевод только на целевой язык, так и двуязычная версия, а имена и ключевые термины сохраняются согласованными благодаря встроенному глоссарию, а не файлу, который вы пишете сами. Это платная услуга. Какой бы инструмент вы ни использовали, выполните ту же проверку разметки, что описана выше, и просмотрите любой длинный перевод, прежде чем полагаться на него. Сравнение инструментов для перевода EPUB ставит рядом плагин Calibre, браузерные инструменты и файловые сервисы, если вы хотите сравнить перед выбором.
Похожие статьи





