Как перевести архив комиксов CBZ или CBR, не нарушив порядок страниц
Исправьте порядок страниц, обложки, лишние файлы и настройки направления справа налево перед переводом комикса CBZ или CBR. Включает бесплатную программу проверки архивов и образец файла.

Файл CBZ — это ZIP-архив с изображениями страниц, а CBR — то же самое, но упакованное в RAR. Внутри архива нет никаких указаний «это страница 2». Программы для чтения комиксов и инструменты перевода определяют порядок страниц, сортируя имена файлов. Поэтому большинство проблем с переведённым комиксом возникают ещё до перевода. Обложка оказывается в конце, страница 10 появляется после страницы 1, или манга, которую нужно читать справа налево, открывается слева направо.
Перед загрузкой выполните три проверки. Убедитесь, что имена страниц сортируются в правильном порядке, удалите всё, что не является страницей, и сохраните файл ComicInfo.xml, если он есть в архиве. Затем загрузите архив как CBZ. Мы написали бесплатную программу проверки архивов комиксов, которая выполняет все три проверки за секунду и может перепаковать файл с безопасными именами страниц.
Краткий ответ: что делать с вашим архивом
| Что у вас есть | Что сделать перед загрузкой |
|---|---|
Файл .cbz, страницы которого названы 001.jpg, 002.jpg … | Загружайте как есть |
Файл .cbz со страницами 1.jpg … 10.jpg или необозначенной cover.jpg | Перепакуйте с именами, дополненными нулями (шаг 2) |
Файл .cbr, .cb7 или .cbt | Распакуйте его, затем перепакуйте папку в .cbz (шаг 3) |
| Страницы сохранены в формате AVIF, JPEG XL или HEIC | Сначала конвертируйте эти страницы в PNG, JPEG или WebP |
| Манга, которую следует читать справа налево | Сохраните её ComicInfo.xml и обновите языковое поле после перевода |
| Комикс, купленный в магазинном приложении | Убедитесь, что у вас действительно есть файл без DRM, который вы имеете право использовать |
В разделах ниже объясняется каждая строка.
Почему нарушается порядок страниц: программы сортируют имена файлов
Существует два распространённых способа сортировки имён файлов, и они расходятся, как только номера страниц имеют разную длину:
- Простая посимвольная сортировка сравнивает имена символ за символом.
10.jpgначинается с1, поэтому идёт перед2.jpg. Получается порядок 1, 10, 11, 12, 2, 3 … - Естественная сортировка воспринимает последовательность цифр как число, поэтому
2идёт перед10. Получается 1, 2, 3 … 10, 11, 12.
Многие программы для чтения комиксов сортируют страницы естественным образом, но на это нельзя полагаться, и вы не можете контролировать, в какой программе откроется переведённый файл. Универсальное решение — дополнить номера ведущими нулями: 001.jpg … 010.jpg сортируются одинаково при любом методе.
Ещё две проблемы с именами легко упустить:
- Обложка без номера оказывается последней. Оба метода сортировки ставят цифры перед буквами. В архиве с
cover.jpgи001.jpg…024.jpgобложка становится последней страницей. - Папки глав сортируются как часть имени.
Chapter 10/01.jpgиChapter 2/01.jpgсравниваются сначала по именам папок, поэтому номера папок требуют такой же аккуратности, как и номера страниц.
BookTranslator упорядочивает страницы .cbz с помощью естественной сортировки без учёта регистра и пропускает мусорные записи, такие как папки __MACOSX, скрытые файлы вроде .DS_Store и Thumbs.db. Это значит, что страница 2 идёт перед страницей 10 во время перевода. Однако переведённые страницы сохраняют исходные имена. Если вы загрузите 1.jpg … 12.jpg, вы получите обратно 1.png … 12.png, и программа чтения с обычной сортировкой всё равно их перепутает. Переименование перед загрузкой исправляет порядок для любой программы чтения.
Шаг 1: Проверьте архив
Скачайте check_comic_archive.py и запустите его на вашем комиксе. Ему нужен только Python 3.8 или новее, и он ничего не загружает:
python3 check_comic_archive.py "My Comic.cbz"
Чтобы показать, что он находит, мы собрали небольшой тестовый архив с проблемами, которые часто встречаются в файлах комиксов. В нём двенадцать страниц без ведущих нулей, обложка cover.png без номера, один разворот на две страницы, файл AVIF, мусорные записи macOS и ComicInfo.xml с пометкой манги справа налево. В README объясняется, как пересобрать его с помощью make_test_comic.py. Вот конец отчёта:
Junk entries (skipped): .DS_Store, __MACOSX/._1.png
Other files (carried over unchanged): ComicInfo.xml
ComicInfo.xml:
Manga (reading direction): YesAndRightToLeft
Right-to-left is stored here, not in the images. Keep this file in the archive so readers that honor it still see it.
LanguageISO: ja. Update it after translation; a copied ComicInfo.xml still names the source language.
Page table: 13 entries for 13 page images.
13 entries record ImageSize/ImageWidth. These describe the original files and no longer match once pages are replaced.
Check before uploading:
- A plain character sort puts '10.png' at position 2, where natural sort has '2.png'. A reader without natural sorting will show pages out of order.
- Pages without a number in the file name: 'cover.png' at 13. Digits sort before letters, so an unnumbered cover usually ends up last.
- Page numbers use [1, 2] digits. Zero-pad them (001, 002, ... 010) so every reader agrees on the order.
- Images in a format that is not treated as a page here: 13.avif. Convert them to PNG, JPEG or WebP, or they stay untranslated.
Выше отчёт перечисляет каждую страницу в порядке чтения с её размером. Он помечает страницу, которая шире, чем выше, как разворот на две страницы, а страницу, которая более чем в три раза выше, чем шире, как длинную полосу, например главу вебтуна. Именно на эти страницы стоит посмотреть в первую очередь, когда перевод будет готов.
Для простых имён файлов в ASCII естественная сортировка программы проверки следует тому же сравнению, которое BookTranslator использует для страниц .cbz, включая папки глав, смешанный регистр, пробелы, дефисы и подчёркивания. Имена с буквами с диакритикой или японской каной могут сортироваться по-разному в разных инструментах, что является ещё одной причиной переименовать страницы в простые номера с ведущими нулями.
Шаг 2: Перепакуйте с безопасными именами страниц
Если отчёт показывает проблемы с порядком, сначала посмотрите на напечатанный порядок, затем перепакуйте:
python3 check_comic_archive.py "My Comic.cbz" --first cover.png --repack "My Comic fixed.cbz"
--repack создаёт новый CBZ. Страницы переименовываются в 0001, 0002 … в показанном порядке, мусорные записи удаляются, а все остальные файлы, включая ComicInfo.xml, копируются без изменений. --first перемещает страницу в начало — так вы возвращаете обложку без номера на её место. Можно повторить для второй страницы, например титульной. Переименование фиксирует порядок, поэтому исправляйте его до перепаковки, а не после. Если в архиве есть таблица страниц ComicInfo.xml, перемещение страниц сдвигает их позиции; программа проверки напоминает проверить после этого такие записи, как маркер обложки.
В тестовом архиве перепакованный файл содержит страницы 0001.png … 0013.png, обложка идёт первой, мусорных записей нет. Остаётся только предупреждение о файле AVIF. Программа проверки не умеет конвертировать изображения; откройте эту страницу в графическом редакторе и экспортируйте её как PNG, JPEG или WebP. Такие форматы, как AVIF, JPEG XL и HEIC, не считаются страницами. Они копируются в результат как есть, без перевода.
Шаг 3: Преобразуйте файл CBR, CB7 или CBT в CBZ
Файл .cbr — это архив RAR, .cb7 — 7z, а .cbt — tar. Переименование .cbr в .cbz не преобразует его. Программа проверки читает первые байты файла. Для архива RAR, 7z или tar она останавливается и сообщает, какой из них у вас. Если вместо этого она выводит обычный отчёт о страницах, значит файл уже является ZIP-архивом под другим именем: переименуйте его в .cbz и вернитесь к шагу 1.
Чтобы преобразовать настоящий архив RAR, 7z или tar, распакуйте его в папку с помощью 7-Zip или The Unarchiver. Затем укажите программе проверки эту папку:
7z x "My Comic.cbr" -o"My Comic"
python3 check_comic_archive.py "My Comic" --repack "My Comic.cbz"
При перепаковке страницы и ComicInfo.xml помещаются в корень нового архива, даже если извлечённые файлы находились во вложенной папке.
BookTranslator также принимает загрузки CBR, CB7 и CBT, но они проходят через другой конвейер по фиксированной цене, а постраничный процесс, описанный в следующем разделе, применяется к файлам .cbz. Преобразование сначала занимает несколько секунд и даёт вам чистые имена страниц из шага 2.
Шаг 4: Сохраните ComicInfo.xml, затем обновите его
Многие архивы включают файл ComicInfo.xml с названием, серией, языком и направлением чтения. Его формат поддерживается Anansi Project. Два его поля важны здесь:
Manga. Схема допускает значенияUnknown,No,YesиYesAndRightToLeft. Последнее сообщает программе чтения, что страницы нужно перелистывать справа налево. Изображения страниц не могут нести эту настройку, поэтому если файл потерян, программы чтения, использующие его, теряют и направление чтения.LanguageISO. Здесь хранится код языка комикса. После перевода он всё ещё указывает исходный язык, напримерja, пока вы его не измените.
BookTranslator копирует ComicInfo.xml в переведённый архив без изменений, поэтому манга справа налево остаётся справа налево в программах чтения, поддерживающих этот флаг. После этого откройте файл в текстовом редакторе и измените LanguageISO на целевой язык. Если в файле есть таблица <Pages>, её записи указывают на страницы по позиции, поэтому они по-прежнему совпадают, если вы не меняли порядок страниц. Значения размера, такие как ImageSize, описывают исходные изображения и больше не будут соответствовать переведённым страницам PNG. Библиотечному инструменту, который на них полагается, может потребоваться повторное сканирование файла.
Что BookTranslator делает с CBZ
Когда вы загружаете комикс в формате .cbz, BookTranslator:
- выводит изображения страниц (PNG, JPEG, WebP, GIF, BMP или TIFF) в естественном порядке и пропускает посторонние записи;
- обрабатывает каждую страницу тем же конвейером, что и отдельные изображения. Он находит текст, удаляет оригинальные надписи и рисует перевод на их месте, работая с несколькими страницами за раз;
- создаёт новый
.cbz, в котором каждая переведённая страница сохранена как PNG на том же месте, плюс все остальные файлы из исходного архива.
Несколько деталей стоит знать до оплаты:
- Цена зависит от количества страниц. Каждая страница — это полный цикл перевода изображения, поэтому стоимость CBZ рассчитывается по страницам, а не по словам. Стоимость отображается после загрузки, до оплаты. Удаление посторонних записей и случайных изображений, не являющихся страницами, на неё не влияет, так как они не считаются страницами.
- Страница с ошибкой сохраняет исходное изображение. Если какая-то страница не обработалась, она остаётся на исходном языке и на своём месте, так что комикс всё равно остаётся полным. Если не удалось обработать более 30% страниц, задача завершается ошибкой, вместо того чтобы выдать книгу, почти не содержащую перевода.
- Вы получаете только переведённый комикс. У архивов комиксов нет двуязычной версии с параллельным текстом.
- Страницы возвращаются в формате PNG. Переведённый архив может быть заметно больше исходного в формате JPEG.
Если вам также нужен сам японский текст, например из сканированных томов манги с вертикальными столбцами и фуриганой, наше руководство по OCR японского вертикального текста рассматривает эти проблемы порядка чтения для текстовых страниц.
Перед загрузкой: доступ к файлу
Это руководство предполагает, что комикс — это файл, которым вы владеете и который можете свободно открыть, например, покупка без DRM, ваши собственные сканы или ваша собственная работа. Магазины приложений часто поставляют комиксы в защищённых форматах, которые открываются только в их собственном ридере. Переименование или перепаковка таких файлов этого не меняет. Если вы не уверены, сначала прочитайте как проверить электронную книгу на наличие DRM перед переводом. Загрузка файла также не даёт вам права делиться переводом или публиковать его.
Переведите комикс
Как только проверка покажет отсутствие проблем с порядком и все страницы будут в формате PNG, JPEG или WebP, загрузите CBZ в переводчик манги и проверьте цену по количеству страниц перед оплатой. Когда перевод будет готов, откройте его в ридере, который планируете использовать. Посмотрите на обложку, первый разворот и последнюю страницу, затем исправьте LanguageISO в ComicInfo.xml. Для более длительных проектов, например серии, которую вы планируете публиковать, наше полное руководство по переводу книг охватывает проверку, терминологию и согласованность между томами.
Похожие статьи





