Швидке локальне читання книг і безкоштовний переклад у Chrome
Конвертуйте EPUB/PDF та інші формати у локальні HTML-сторінки, потім читайте у Chrome і перекладайте вбудованим перекладачем браузера. Без API-ключа, без підписки і без зайвих церемоній.
Іпостасі - усі способи користуватися
Doc-HTML-Translate існує в кількох іпостасях; у них спільний конвертер і спільна ідея - віддати браузеру чистий HTML і дати йому перекласти. Обирай, що зручніше.
- CLI -
doc-html-translate.exe, конвертер командного рядка та обробник файлових асоціацій Windows. Його прапорці описані на цій сторінці.
- GUI-застосунок -
doc-html-ui.exe, віконний інтерфейс з усіма прапорцями нижче: вибір файлу, drag & drop і тумблер «обробник за замовчуванням» (за бажанням, типово вимкнено).
- Застосунок у Microsoft Store - той самий десктоп (GUI + CLI) як авто-оновлюваний MSIX з підписом Store: Microsoft Store.
- Розширення для браузера - перемальовує документи (PDF, EPUB, MOBI, AZW3, FB2, RTF, TXT, Markdown, HTML, CBZ/CBT-комікси) у чистий HTML прямо в браузері, щоб вбудований «Перекласти сторінку» працював на них без встановлення застосунку: Chrome Web Store · сторінка розширення.
Рекомендований сценарій (безкоштовно)
Найзручніший щоденний варіант, і так, «безкоштовно» тут справді означає безкоштовно:
- Відкрити файл застосунком або запустити звичайну команду
- Відкриття згенерованого index у Chrome
- Переклад сторінки на потрібну мову через вбудований переклад Chrome
doc-html-translate.exe "book.epub"
# або
# doc-html-translate.exe "book.pdf"
Переваги: без API-ключа, без платних викликів, дуже швидкий старт.
Швидкий старт
Збірка
go build -o build/doc-html-translate.exe ./cmd/doc-html-translate
Запуск
doc-html-translate.exe "book.epub"
doc-html-translate.exe -notranslate "book.epub" # явний режим без перекладу
doc-html-translate.exe -src en -dst uk "book.epub"
doc-html-translate.exe -google "book.epub"
doc-html-translate.exe -ollama "book.epub"
Підтримувані формати
EPUB, PDF, TXT, Markdown, FB2, RTF, HTML, MOBI, AZW3 і комікси CBZ/CBR/CB7/CBT. Набір, відверто кажучи, пристойний.
А ще комікси (CBZ / CBR / CB7 / CBT): це контейнер зі сторінками-картинками без текстового шару, він відкривається сторінка за сторінкою з примусово ввімкненим OCR, тому текст у «бульбашках» розпізнається і лягає перекладними плашками поверх кожної сторінки. CBZ і CBT не потребують нічого додатково; CBR і CB7 потребують встановленого 7-Zip (той самий прийом із зовнішнім інструментом, що й MOBI з Calibre).
А ще одиночна картинка (PNG, JPG, JPEG, WebP, GIF, BMP, TIFF): застосунок розпізнає на ній текст і накладає його перекладними плашками поверх зображення, щоб вбудований переклад сторінки в Chrome/Edge працював прямо на картинці - той самий оверлей, що робить розширення для браузера. Потрібен OCR-рушій Tesseract (див. -ocr-lang).
MOBI та AZW3: потрібен встановлений Calibre. Комікси CBR і CB7: потрібен встановлений 7-Zip (CBZ і CBT не потребують нічого додатково). Файли з DRM не підтримуються - конвертер поважає замки, які не вміє зламувати.
Звичайний текст (.txt) декодується за провідними байтами - мітка порядку байтів UTF-8/UTF-16, потім коректний UTF-8, потім застаріла кирилична кодова сторінка (Windows-1251, KOI8-R, CP866) за детекцією - тож .txt із часів DOS або збережений у Notepad як «Unicode» читається текстом, а не «кракозябрами». Нечитаний бінарник (.docx, .djvu чи архів коміксу без 7-Zip) відхиляється з назвою формату, а не перетворюється на сміттєвий документ.
Зручність читання
У згенерований HTML вбудовано невеликий клієнтський шар для читання - сервер няньчити не треба, спокійно працює через file://:
- Теми читання - перемикач у навбарі (і на
index.html) циклить Light / Sepia / Dark / Night. Вибір зберігається в localStorage і застосовується на кожній сторінці.
- Позиція читання - прокручування зберігається для кожної книги, тож застосунок памʼятає, де ви зупинилися, навіть коли ви самі вже не памʼятаєте. На
index.html з'являється посилання «Continue reading» на останню відкриту сторінку, а в навбарі - тонкий індикатор прогресу по всій книзі.
- Ліміт витрат - для платних рушіїв прапорець
-max-cost N перетворює оцінку вартості (символи / 1e6 * $20) на жорсткий ліміт до відправлення: якщо оцінка перевищує N, переклад пропускається, а книга все одно збирається без перекладу.
Односторінкові документи не мають навбара, тому цей шар до них не застосовується.
Додаткові зовнішні інструменти
Застосунок працює одразу для EPUB, TXT, FB2, RTF, HTML, Markdown. Інструменти нижче суто опціональні - ставте їх, лише якщо хочете повну підтримку зображень PDF та додаткових форматів.
| Інструмент | Призначення | Потрібен для | Як встановити |
pdftotext (Xpdf / Poppler) |
Якісне вилучення тексту з PDF - краще обробляє складні шрифти, лігатури, багатоколонковий макет |
PDF-файли - необов'язково, при відсутності використовується вбудований fallback |
xpdfreader.com → «Xpdf tools» або вже входить до Git for Windows |
| ffmpeg |
Конвертує JPEG 2000 зображення (.jpx) з PDF у JPEG - браузери й у 2026 році ввічливо відмовляються показувати JPEG 2000 |
PDF-файли із зображеннями у форматі JPEG2000 (поширено в комерційних PDF) |
gyan.dev/ffmpeg → «release essentials» або winget install ffmpeg |
| Calibre |
Конвертує MOBI / AZW3 у EPUB перед обробкою |
Обов'язковий для підтримки форматів MOBI та AZW3 |
calibre-ebook.com |
| 7-Zip |
Розпаковує комікси CBR (RAR) і CB7 (7z) у сторінки-картинки |
Комікси CBR і CB7 - CBZ і CBT не потребують нічого додатково |
7-zip.org |
Без pdftotext: використовується вбудований Go-рідер PDF (дещо нижча якість). Без ffmpeg: зображення JPEG2000 у PDF не відображатимуться в браузері. Без Calibre: файли MOBI/AZW3 не відкриваються. Без 7-Zip: комікси CBR/CB7 не відкриваються.
Основні прапорці
Усі опціональні. Значення за замовчуванням розумні, тож цю таблицю можна ігнорувати, доки не зʼявиться власна думка.
| Прапорець | За замовчуванням | Опис |
| -notranslate | false | Лише конвертація, без перекладу |
| -noopen | false | Не відкривати браузер автоматично |
| -google | false | Переклад через Google Cloud Translation API |
| -ollama | false | Локальний переклад Ollama |
| -ocr | false | Розпізнати текст на зображеннях документа (OCR) і накласти його зверху справжнім перекладним HTML (потрібен Tesseract) |
| -ocr-lang | (-src) | Мова(и) OCR, напр. eng або eng+rus. Якщо не задано - береться з -src (інакше eng), і застосунок перевіряє писемність сторінки: є дані для неї - мова додається, а не замінюється (rus+eng); немає - сторінка лишається без плашок, а в лог іде рядок із потрібним пакетом. Заданий прапорець цю перевірку вимикає |
| -ocr-langs | false | Показати встановлені/доступні мови OCR і вийти |
| -ocr-download | empty | Завантажити мовний пакет OCR (напр. -ocr-download rus) і вийти |
| -max-cost | 0 | Перервати платний переклад до відправлення, якщо оцінка вартості в USD перевищує N. Якщо сумніваєтеся, 0 (без ліміту) - цілком гідний вибір |
| -split | 5000 | Розбиття сторінок за кількістю символів, 0 вимикає |
| -toc-depth | 0 | Глибина вкладеності змісту на index.html, 0 = без обмежень, 1 = лише розділи |
| -folder | empty | Папка для результату |
| -src | en | Мова джерела |
| -dst | ru | Мова перекладу |
| -ui-lang | (системна) | Мова інтерфейсу: en ru uk de it es fr pt ar hi bn ur zh. Порожньо - мова Windows |
| -force | false | Перезібрати навіть якщо output вже існує |
| -register | false | За бажанням зробити застосунок обробником за замовчуванням для EPUB, PDF та інших підтримуваних файлів (типово вимкнено; та сама кнопка-тумблер у застосунку doc-html-ui). Перший запуск лише додає пункт правого кліку і пропонує це. |
| -unregister | false | Зняти асоціацію обробника за замовчуванням (пункт правого кліку «Convert to HTML» і «Відкрити за допомогою» залишаються). |
| -register-openwith | false | Додати застосунок до списку Windows "Відкрити за допомогою" і пункт правого кліку «Convert to HTML» без призначення обробником за замовчуванням. Застосунок doc-html-ui робить це автоматично під час запуску, тож програма завжди доступна, навіть якщо ви не призначали її за замовчуванням. |
| -report | false | Запакувати нещодавні журнали запусків і зведення про оточення в архів для автора, надрукувати шлях до нього та вийти |
Усі опції вище доступні й у графічному застосунку doc-html-ui - вибір файлу, drag & drop, глибина змісту, ліміт вартості та тумблер «обробник за замовчуванням» (за бажанням, типово вимкнено; пункт правого кліку «Convert to HTML» додається завжди). У збірці Microsoft Store саме GUI - запускана точка входу, а подвійний клік по файлу досі запускає конвертер з командного рядка.
Надсилання журналів авторові
Коли конвертація йде не так, опису з пам'яті зазвичай не досить, щоб відтворити проблему. Програма зберігає
нещодавні журнали запусків на диску - до 20 запусків або 20 МБ, найстаріші видаляються першими, - тож збій можна
показати і за годину, і після падіння програми.
Відкрийте розділ Про програму внизу налаштувань застосунку doc-html-ui. У
ньому видно версію, видання (портативне чи з Microsoft Store) і чи знайдено рушій конвертера, і є одна кнопка -
Надіслати журнали авторові. Одне натискання збирає єдиний архів, відкриває його теку з виділеним
файлом, копіює шлях у буфер обміну і відкриває готового листа у вашій поштовій програмі. У командному рядку той
самий архів збирає прапорець -report, друкуючи, куди він ліг.
Архів пишеться в %LOCALAPPDATA%\doc-html-translate\reports\ і містить рівно три речі:
- environment.txt - версія, видання, платформа, мова інтерфейсу, чи знайдено Tesseract і які
мови OCR встановлено, типова модель Ollama. Завжди англійською, щоб автор читав один формат.
- settings.json - налаштування, з якими йшов останній запуск.
- logs/ - нещодавні журнали запусків, свіжі першими.
Увесь вміст проходить через редагування: будь-яке значення, схоже на ключ, токен, пароль чи ключ Google API,
перетворюється на <redacted>, а ваші теки згортаються до %USERPROFILE% і
%LOCALAPPDATA%. Імена файлів документів зберігаються навмисно - із журналом, який
нема з чим зіставити, зазвичай нічого не вдієш. Ключа Google API в архіві немає ніколи; автоматичний тест не дасть
йому туди потрапити. Розмір архіву обмежено 15 МБ: найстаріші журнали відкидаються першими, і вам повідомляють,
скільки їх не вмістилося.
Нічого не надсилається автоматично. Програма не відкриває для цього жодного мережевого
з'єднання; вона дає вам файл і ненадісланого листа, а прикріплюєте архів і натискаєте «Надіслати» ви самі. Кнопка
Відкрити архів у тому ж розділі дозволяє спершу зазирнути всередину, а Очистити
журнали - взагалі не зберігати історію запусків на диску.
У розширення для браузера немає сховища журналів, тому воно пропонує те, що може дати чесно:
кнопку Скопіювати діагностику в блоці «Про розширення» на сторінці налаштувань. Вона копіює в
буфер обміну коротке зведення англійською - версія розширення, браузер, мова інтерфейсу, ваш набір налаштувань, а
також формат, кількість сторінок і останню помилку останнього документа. Ні тексту документів, ні списку ваших
сайтів там немає.
Companion-застосунок: FastMediaSorter LITE
Для документів, які є зображеннями, а не текстом - скриншоти, манґа,
сфотографовані або відскановані сторінки, те, чого текстовий конвертер прочитати в думках поки не вміє - використовуйте FastMediaSorter LITE,
безкоштовний Windows-застосунок для відкриття та сортування зображень і відео з вбудованим OCR та перекладом прямо на зображенні.
Натисніть T на будь-якій картинці, щоб розпізнати текст і накласти переклад вашою мовою
(локальний Ollama або LibreTranslate). Доповнює Doc-HTML-Translate, який працює з книжковими та текстовими форматами.
winget install SerZhyAle.FastMediaSorter
Мови інтерфейсу
Інтерфейс застосунку та розширення доступний 13 мовами: en ru uk de it es fr pt ar hi bn ur zh. Англійська, російська та українська вичитані автором; решта десять перекладені машинно й не вичитані - виправлення надсилайте на sza@ukr.net.