Быстрое чтение книг локально и бесплатный перевод в Chrome
Конвертируйте EPUB/PDF и другие форматы в локальные HTML-страницы, затем читайте в Chrome и переводите встроенным переводчиком браузера. Без API-ключа, без подписки и без лишних церемоний.
Doc-HTML-Translate существует в нескольких ипостасях; у них общий конвертер и общая идея - отдать браузеру чистый HTML и дать ему перевести. Выбирай, что удобнее.
Настольное приложение - две программы на одном конвертере: doc-html-translate.exe, конвертер командной строки и обработчик файловых ассоциаций Windows (его флаги описаны на этой странице), и 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 · Edge Add-ons · страница расширения.
Сконвертируйте книгу и читайте её в переводе бесплатно
Превратите документ в локальную HTML-книгу, откройте её в Chrome и доверьте перевод встроенному переводу страниц Chrome. В итоге вы читаете книгу на своём языке, с оглавлением и навигацией, а ключа API и платных вызовов по пути нет.
Доступно в
Настольное приложениеПриложение из Microsoft Store
Понадобится
Windows и Chrome со встроенным переводом страницы (Перевести страницу). Расширение для браузера даёт тот же результат прямо в браузере, без приложения.
Откройте doc-html-ui, перетащите файл в окно и нажмите Конвертировать. Удобнее командная строка? Запустите одну из команд:
Шаг 1 - перетащите файл в окно приложения и нажмите «Конвертировать».
doc-html-translate.exe "book.epub"
# или doc-html-translate.exe "book.pdf"
Сконвертированная книга откроется в браузере сама (если не задан -noopen).
Шаг 2 - сконвертированная книга открывается в браузере.
В меню самого браузера выберите Перевести страницу и укажите свой язык.
Результат
Книга читается в браузере на вашем языке. Сконвертированные страницы лежат в папке рядом с исходным файлом (или в выбранной вами папке), так что открыть их снова можно без новой конвертации.
Соберите конвертер командной строки и запустите его с движком перевода
Соберите doc-html-translate.exe из исходников и запустите его из терминала в нужном режиме. В итоге получится сконвертированная книга, а если вы выбрали движок - ещё и переведённая во время конвертации.
Доступно в
Настольное приложение
Понадобится
Go, чтобы собрать из исходников (готовому релизу ничего не нужно). Для -google нужен сохранённый ключ Google Cloud Translation API; для -ollama - запущенная локальная служба Ollama с выбранной моделью.
Соберите программу. Пропустите этот шаг, если скачали готовый релиз.
go build -tags nodynamic -o build/doc-html-translate.exe ./cmd/doc-html-translate
Запустите её в нужном режиме. Обычная конвертация - это команда из рекомендуемого сценария; эти добавляют флаг:
doc-html-translate.exe -notranslate "book.epub" # явный режим без перевода
doc-html-translate.exe -src en -dst ru "book.epub"
doc-html-translate.exe -google "book.epub"
doc-html-translate.exe -ollama "book.epub"
Результат
Книга сконвертирована рядом с исходным файлом и открывается в браузере. С -google или -ollama она переводится во время конвертации.
А ещё комиксы (CBZ / CBR / CB7 / CBT): это контейнер со страницами-картинками без текстового слоя, он открывается страница за страницей с принудительно включённым OCR, поэтому текст в «пузырях» распознаётся и ложится переводимыми плашками поверх каждой страницы. CBZ и CBT не требуют ничего дополнительно; CBR и CB7 требуют установленного 7-Zip (тот же приём с внешним инструментом, что и MOBI с Calibre).
А ещё одиночная картинка (PNG, JPG, JPEG, WebP, GIF, BMP, TIFF, JPEG XL (.jxl)): приложение распознаёт на ней текст и накладывает его переводимыми плашками поверх изображения, чтобы встроенный перевод страницы в Chrome/Edge работал прямо на картинке - тот же слой текста, что делает расширение для браузера. Нужен OCR-движок Tesseract (см. -ocr-lang).
Картинки JPEG XL (.jxl) локально преобразуются встроенным декодером в PNG перед показом и OCR, в том числе внутри книг и комиксов. Прозрачность сохраняется; у анимированного JPEG XL используется первый отображаемый кадр. Дополнительная программа для изображений или кодек браузера не нужны.
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) отклоняется с указанием формата, а не превращается в мусорный документ.
02Удобство чтения
В сгенерированный HTML встроен небольшой клиентский слой для чтения - сервер нянчить не нужно, спокойно работает по file://:
Темы чтения - переключатель в навбаре (и на index.html) циклит Light / Sepia / Dark / Night. Выбор хранится в localStorage и применяется на каждой странице.
Позиция чтения - прокрутка сохраняется для каждой книги, так что приложение помнит, где вы остановились, даже когда вы сами уже не помните. На index.html появляется ссылка «Continue reading» на последнюю открытую страницу, а в навбаре - тонкий индикатор прогресса по всей книге, который показывает процент при наведении или с клавиатуры.
Удобство чтения - межстрочный интервал и ширина колонки выбираются в том же навбаре и запоминаются вместе с темой, но вступают в силу только после выбора. Кнопка ночного режима одним кликом меняет светлую тему на тёмную и обратно, кнопка сброса возвращает размер текста к исходному, а стрелки и пробел листают страницы у краёв прокрутки - так же, как PageUp/PageDown. Для комиксов и сканов есть режим «По ширине окна» рядом с масштабом по Ctrl+колесу: страница заполняет окно без подбора процентов.
Поиск - поисковая панель навбара находит фразу на текущей странице или во всей книге, а Ctrl+F открывает её с курсором в поле (повторное нажатие в поле уступает встроенному поиску браузера); многостраничный выпуск носит локальный индекс, так что поиск по книге работает на file://. Результаты показывают строки контекста, выбранное совпадение подсвечивается, а распознанный OCR-текст над картинками ищется там, где распознавание его дало - у страниц без текста совпадений нет.
Лимит расходов - для платных движков флаг -max-cost N превращает оценку стоимости (символы / 1e6 * $20) в жёсткий лимит до отправки: если оценка превышает N, перевод пропускается, а книга всё равно собирается без перевода.
Одностраничный документ сохраняет непрерывное чтение и показывает компактное оглавление, если в книге есть авторская навигация, закладки PDF или заголовки.
03Дополнительные внешние инструменты
Приложение работает сразу для EPUB, TXT, FB2, RTF, HTML, Markdown. Инструменты ниже строго опциональны - ставьте их, только если хотите полную поддержку PDF-изображений и дополнительных форматов.
Инструмент
Назначение
Нужен для
Как установить
pdftotext (Xpdf / Poppler)
Качественное извлечение текста из PDF - лучше справляется со сложными шрифтами, лигатурами, многоколоночным макетом
PDF-файлы - необязательно, при отсутствии используется встроенный fallback
Без pdftotext: используется встроенный Go-ридер PDF (чуть ниже качество). Без ffmpeg: изображения JPEG2000 в PDF не будут видны в браузере. Без Calibre: файлы MOBI/AZW3 не открываются. Без 7-Zip: комиксы CBR/CB7 не открываются.
04Основные флаги
Все опциональны. Значения по умолчанию разумны, так что эту таблицу можно игнорировать, пока не появится своё мнение.
Флаг
По умолчанию
Описание
-notranslate
false
Только конвертация, без перевода
-noopen
false
Не открывать браузер автоматически
-google
false
Перевод через Google Cloud Translation API (нужен сохранённый ключ API; платный, см. -max-cost)
-ollama
false
Локальный перевод Ollama (нужна запущенная локальная служба 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 предлагает то же самое переключателем в разделе «Интеграция с Windows» и вопросом при первом запуске; само по себе оно ничего не добавляет.
-report
false
Упаковать недавние журналы запусков и сводку окружения в архив для автора, напечатать путь к нему и выйти
-fdsec-password-env
(пусто)
Для секретного файла FileDO (.fd-sec): имя переменной окружения с его паролем, для запусков без участия человека - не сам пароль. Консоль и окно приложения спрашивают пароль сами.
Все опции выше доступны и в графическом приложении doc-html-ui - выбор файла, drag & drop, глубина оглавления, лимит стоимости и тумблер «обработчик по умолчанию» (по желанию, по умолчанию выключен; пункт правого клика «Convert to HTML» добавляется всегда). В сборке Microsoft Store именно GUI - запускаемая точка входа, а двойной клик по файлу по-прежнему запускает конвертер из командной строки.
Во время конвертации GUI показывает текущий этап рядом с кнопками запуска и отмены. Число страниц или изображений показывается, когда известно общее количество; процент и оставшееся время не угадываются. Подробности остаются в журнале, а итог различает повторное открытие, предупреждения, отмену и ошибку.
05Отправьте автору журналы неудачной конвертации
Когда конвертация идёт не так, описания по памяти обычно не хватает, чтобы воспроизвести проблему. Приложение хранит недавние журналы запусков на диске - до 20 запусков или 20 МБ, самые старые удаляются первыми, - так что их можно упаковать в один архив для автора и через час, и после падения программы.
Доступно в
Настольное приложениеПриложение из Microsoft StoreРасширение для браузера
Понадобится
Почтовая программа - для готового письма. У расширения для браузера нет хранилища журналов, и оно копирует короткую сводку (см. ниже).
Откройте страницу О программе приложения doc-html-ui, её группу Поддержка и диагностика, и нажмите Отправить журналы автору. Одно нажатие собирает единый архив, открывает его папку с выделенным файлом, копирует путь в буфер обмена и открывает готовое письмо в вашей почтовой программе.
Группа «Поддержка и диагностика» на странице «О программе». Кнопка «Открыть архив» появляется рядом с «Отправить журналы автору», когда архив уже есть.
Прикрепите архив к этому письму и нажмите «Отправить». Само приложение ничего не отправляет.
Архив пишется в %LOCALAPPDATA%\doc-html-translate\reports\ и содержит ровно три вещи:
environment.txt - версия, издание, платформа, язык интерфейса, найден ли Tesseract и какие языки OCR установлены, модель Ollama по умолчанию, а также строка «logs left out» с их числом, если лимит размера оставил часть журналов запусков вне архива. Всегда на английском, чтобы автор читал один формат.
settings.json - настройки, с которыми шёл последний запуск.
Всё содержимое проходит через редактирование: любое значение, похожее на ключ, токен, пароль или ключ Google API, превращается в <redacted>, а ваши папки сворачиваются до %USERPROFILE% и %LOCALAPPDATA%. Имена файлов документов сохраняются намеренно - по журналу, который не с чем сопоставить, обычно ничего не сделать. Ключа Google API в архиве нет никогда; автоматический тест не даст ему туда попасть. Размер архива ограничен 15 МБ: самые старые журналы отбрасываются первыми, и вам сообщают, сколько их не поместилось.
Ничего не отправляется автоматически. Приложение не открывает для этого ни одного сетевого соединения; оно даёт вам файл и неотправленное письмо, а прикрепляете архив и нажимаете «Отправить» вы сами. Кнопка Открыть архив в том же разделе позволяет сначала заглянуть внутрь, а Очистить журналы - вообще не хранить историю запусков на диске.
В командной строке тот же архив собирает флаг -report, печатая, куда он лёг.
У расширения для браузера нет хранилища журналов, поэтому оно предлагает то, что может дать честно: кнопку Скопировать диагностику в блоке «О расширении» на странице настроек. Она копирует в буфер обмена короткую сводку на английском - версия расширения, браузер, язык интерфейса, ваш набор настроек, а также формат, число страниц и последнюю ошибку последнего документа. Ни текста документов, ни списка ваших сайтов там нет.
Результат
У вас на руках один отредактированный архив, не больше 15 МБ, и неотправленное письмо автору. Пока вы не нажмёте «Отправить», с вашего компьютера ничего не ушло.
06Откройте секретный файл FileDO (.fd-sec) и сконвертируйте то, что внутри
Файл .fd-sec - это секретный файл FileDO. Приложение спросит пароль, расшифрует файл установленным на компьютере FileDO и сконвертирует документ или картинку внутри так же, как оригинал. В итоге рядом с вашими документами лежит обычная HTML-книга.
Доступно в
Настольное приложениеПриложение из Microsoft Store
Понадобится
FileDO, установленный на компьютере (winget install SerZhyAle.FileDO, Microsoft Store или установщик либо portable-сборка FileDO), и пароль файла. Расширение для браузера секретные файлы не открывает.
Откройте его, как любой другой документ: из командной строки, выбором или перетаскиванием в окно, из очереди или списка недавних либо пунктом Convert to HTML контекстного меню. По байтам не видно, что внутри, поэтому приложение лишь предполагает секретный файл. Сначала, ничего не спрашивая, оно выясняет, не готов ли уже результат (неизменённый файл открывается повторно вовсе без пароля), установлен ли FileDO и подходит ли размер файла под формат.
Введите пароль в маскированном поле и нажмите Открыть - один раз на всю очередь; консоль спрашивает без отображения. Пустой пароль открывает только файл, сделанный без пароля: это маскировка, а не секретность.
Вопрос о пароле секретного файла, ввод маскируется.
Затем приложение расшифровывает файл установленным на компьютере FileDO в одну личную папку внутри временной папки, конвертирует документ или картинку внутри точно так же, как оригинал, и удаляет расшифрованную копию, как только она прочитана. Копия, оставшаяся после сбоя, удаляется при следующем запуске.
Для запусков без участия человека укажите переменную окружения с паролем: -fdsec-password-env ИМЯ - имя переменной, не сам пароль.
Отказ с отдельным сообщением в каждом случае: секретный файл с папкой внутри, с другим секретным файлом, с типом, который приложение не конвертирует, неверный пароль (сообщение называет все три причины: неверный пароль, это не секретный файл или он изменён), повреждённый файл и слишком старый FileDO для такого вида секретного файла (обновите его).
Результат
Результат называется по имени секретного файла и не зашифрован - он лежит рядом с вашими документами, как любая другая конвертация. Пароль передаётся только локальному FileDO и нигде не сохраняется, не записывается в журнал, не отправляется и не показывается в командной строке.
Превращение документа (EPUB, PDF, FB2, архива комикса, изображения, ..) в папку локальных HTML-страниц с index.html, навигацией и оглавлением. Главная работа приложения; ничего не загружается в сеть.
Перевод страницы
Бесплатный способ читать на своём языке: откройте сконвертированный index.html в Chrome или Edge и воспользуйтесь встроенным переводом страницы. Google Cloud и Ollama - необязательные движки, которые переводят уже во время конвертации.
Слой текста (OCR)
Текст, который Tesseract распознал на картинке - скане, странице комикса, отдельном изображении, - положенный поверх неё переводимыми плашками, чтобы перевод страницы работал прямо на картинке.
Плашка
Один блок слоя текста. Она закрывает буквы, которые заменяет; кнопка в шапке прячет все плашки, чтобы посмотреть рисунок под ними.
Настольное приложение
Версия для Windows: doc-html-ui.exe (окно) и doc-html-translate.exe (командная строка), портативно или из Microsoft Store.
CLI
Конвертер командной строки doc-html-translate.exe. Каждая настройка - флаг из раздела «Основные флаги».
Расширение для браузера
Версия для Chromium из Chrome Web Store и Edge Add-ons: конвертирует документ прямо во вкладке браузера, без настольного приложения.
Приложение из Microsoft Store
Настольное приложение как автообновляемый пакет MSIX с подписью Store.
Обработчик по умолчанию
Программа, которую Windows запускает по двойному щелчку на файле. Приложение становится ею для EPUB, PDF и других поддерживаемых файлов только с вашего согласия.
Оглавление
Многоуровневый список глав на index.html, построенный по структуре самой книги.
Лимит расходов
Предел стоимости для платных движков перевода: если оценка выше, перевод пропускается, а книга всё равно создаётся.
Tesseract
Открытый движок OCR, который приложение вызывает для текста на картинках; без него слоя текста нет.
Интерфейс приложения и расширения доступен на 13 языках: en ru uk de it es fr pt ar hi bn ur zh. Английский, русский и украинский вычитаны автором; остальные десять переведены машинно и не вычитаны - исправления присылайте на sza@ukr.net.
Связанный инструмент
Для отдельных изображений, сканов и медиа, которые нужно просмотреть или отсортировать, подходит Fast Media Sorter for Windows. Он дополняет этот инструмент, а не заменяет его.