BookTranslator
BookTranslator

Come tradurre un archivio fumetto CBZ o CBR senza scombinare l'ordine delle pagine

Sistema l'ordine delle pagine, le copertine, i file spazzatura e le impostazioni da destra a sinistra prima di tradurre un fumetto CBZ o CBR. Include un controllo gratuito per archivi e un file di esempio.

BookTranslator

BookTranslator Team

11 min di lettura

Un file CBZ è un archivio ZIP di immagini di pagine, e un file CBR è la stessa idea impacchettata con RAR. Niente dentro l'archivio dice "questa è la pagina 2". I lettori di fumetti, e gli strumenti di traduzione, ricavano l'ordine delle pagine ordinando i nomi dei file. Quindi la maggior parte dei problemi con un fumetto tradotto inizia prima della traduzione. Una copertina finisce in fondo, la pagina 10 compare dopo la pagina 1, o un manga da leggere da destra a sinistra si apre da sinistra a destra.

Esegui tre controlli prima di caricare. Assicurati che i nomi delle pagine si ordinino nell'ordine giusto, rimuovi tutto ciò che non è una pagina e conserva il file ComicInfo.xml se l'archivio ne contiene uno. Poi carica l'archivio come CBZ. Abbiamo scritto un controllo gratuito per archivi fumetto che esegue tutti e tre i controlli in un secondo e può riconfezionare il file con nomi di pagina sicuri.

Risposta rapida: cosa fare con il tuo archivio

Cosa haiCosa fare prima di caricare
Un .cbz le cui pagine si chiamano 001.jpg, 002.jpg …Caricalo così com'è
Un .cbz con pagine chiamate 1.jpg … 10.jpg, o una cover.jpg senza numeroRiconfezionalo con nomi a lunghezza fissa con zeri iniziali (Passo 2)
Un file .cbr, .cb7 o .cbtEstrailo, poi riconfeziona la cartella come .cbz (Passo 3)
Pagine salvate come AVIF, JPEG XL o HEICConverti prima quelle pagine in PNG, JPEG o WebP
Un manga che dovrebbe essere letto da destra a sinistraConserva il suo ComicInfo.xml e aggiorna il campo della lingua dopo la traduzione
Un fumetto acquistato da un'app di uno storeVerifica di avere effettivamente un file senza DRM che sei autorizzato a usare

Le sezioni seguenti spiegano ogni riga.

Perché l'ordine delle pagine si rompe: i lettori ordinano i nomi dei file

Ci sono due modi comuni per ordinare i nomi dei file, e non sono d'accordo appena i numeri di pagina hanno lunghezze diverse:

  • Un ordinamento carattere per carattere confronta i nomi un carattere alla volta. 10.jpg inizia con 1, quindi viene prima di 2.jpg. Ottieni l'ordine 1, 10, 11, 12, 2, 3 …
  • Un ordinamento naturale legge una sequenza di cifre come un numero, quindi 2 viene prima di 10. Ottieni 1, 2, 3 … 10, 11, 12.

Molti lettori di fumetti ordinano i file in modo naturale, ma non puoi contarci, e non puoi controllare in quale lettore verrà aperto il file tradotto. La soluzione che funziona ovunque è aggiungere zeri iniziali ai numeri: 001.jpg … 010.jpg si ordinano allo stesso modo con entrambi i metodi.

Altri due problemi di denominazione sono facili da trascurare:

  • Una copertina senza numero finisce per ultima. Entrambi i metodi di ordinamento mettono le cifre prima delle lettere. In un archivio con cover.jpg e 001.jpg … 024.jpg, la copertina diventa l'ultima pagina.
  • Le cartelle dei capitoli vengono ordinate come parte del nome. Chapter 10/01.jpg e Chapter 2/01.jpg confrontano prima i nomi delle cartelle, quindi i numeri delle cartelle richiedono la stessa attenzione dei numeri di pagina.

BookTranslator ordina le pagine .cbz con un ordinamento naturale e senza distinzione tra maiuscole e minuscole, e ignora le voci spazzatura come le cartelle __MACOSX, i file nascosti come .DS_Store e Thumbs.db. Questo significa che la pagina 2 viene prima della pagina 10 durante la traduzione. Le pagine tradotte mantengono però i nomi originali. Se carichi 1.jpg … 12.jpg, ricevi indietro 1.png … 12.png, e un lettore che usa un ordinamento semplice le mescolerà comunque. Rinominare prima di caricare risolve il problema dell'ordine per ogni lettore.

Passo 1: Controlla l'archivio

Scarica check_comic_archive.py ed eseguilo sul tuo fumetto. Richiede Python 3.8 o superiore e nient'altro, e non carica nulla:

python3 check_comic_archive.py "My Comic.cbz"

Per mostrare cosa trova, abbiamo creato un piccolo archivio di esempio con problemi che vediamo spesso nei file dei fumetti. Contiene dodici pagine numerate senza zeri iniziali, una cover.png senza numero, una doppia pagina, un file AVIF, voci spazzatura di macOS e un ComicInfo.xml contrassegnato come manga da destra a sinistra. Il README spiega come ricrearlo con make_test_comic.py. Ecco la fine del report:

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.

Sopra, il report elenca ogni pagina in ordine di lettura con le sue dimensioni. Segnala come doppia pagina una pagina più larga che alta, e come striscia verticale una pagina più di tre volte più alta che larga, come un capitolo webtoon. Sono le pagine da controllare per prime quando arriva la traduzione.

Per i nomi di file ASCII semplici, l'ordinamento naturale del checker segue lo stesso confronto usato da BookTranslator per le pagine .cbz, comprese le cartelle dei capitoli, maiuscole e minuscole miste, spazi, trattini e underscore. I nomi con lettere accentate o kana giapponesi possono ordinarsi diversamente tra strumenti, il che è un altro motivo per rinominare le pagine con numeri semplici con zeri iniziali.

Passo 2: Ripacchetta con nomi di pagina sicuri

Se il report elenca problemi di ordinamento, guarda prima l'ordine stampato, poi ripacchetta:

python3 check_comic_archive.py "My Comic.cbz" --first cover.png --repack "My Comic fixed.cbz"

--repack scrive un nuovo CBZ. Le pagine vengono rinominate 0001, 0002 … nell'ordine mostrato, le voci spazzatura vengono eliminate e ogni altro file, incluso ComicInfo.xml, viene copiato senza modifiche. --first sposta una pagina all'inizio, ed è così che rimetti al suo posto una copertina senza numero. Puoi ripeterlo per una seconda pagina, come un frontespizio. La rinomina blocca l'ordine, quindi correggilo prima di ripacchettare, non dopo. Se l'archivio ha una tabella delle pagine in ComicInfo.xml, spostare le pagine cambia le loro posizioni; il checker ti ricorda di controllare voci come l'indicatore di copertina dopo.

Nell'archivio di esempio, il file ripacchettato ha le pagine 0001.png … 0013.png con la copertina per prima e nessuna voce spazzatura. L'unico avviso rimasto è il file AVIF. Il checker non può convertire le immagini; apri quella pagina in un editor di immagini ed esportala come PNG, JPEG o WebP. Formati come AVIF, JPEG XL e HEIC non vengono trattati come pagine. Vengono copiati nel risultato così come sono, non tradotti.

Passo 3: Converti un file CBR, CB7 o CBT in CBZ

Un file .cbr è un archivio RAR, un .cb7 è 7z e un .cbt è tar. Rinominare un .cbr in .cbz non lo converte. Il checker legge i primi byte del file. Per un archivio RAR, 7z o tar si ferma e ti dice quale hai. Se invece stampa un normale report delle pagine, il file è già un archivio ZIP con un altro nome: rinominalo in .cbz e torna al Passo 1.

Per convertire un vero archivio RAR, 7z o tar, estrailo in una cartella con 7-Zip o The Unarchiver. Poi indica la cartella al checker:

7z x "My Comic.cbr" -o"My Comic"
python3 check_comic_archive.py "My Comic" --repack "My Comic.cbz"

Il repack mette le pagine e ComicInfo.xml al livello superiore del nuovo archivio, anche se i file estratti si trovavano in una sottocartella.

BookTranslator accetta anche caricamenti CBR, CB7 e CBT, ma passano attraverso una pipeline diversa a prezzo fisso, e il processo pagina per pagina descritto nella sezione successiva si applica ai file .cbz. Convertire prima richiede pochi secondi e ti dà anche i nomi di pagina puliti del Passo 2.

Passo 4: Conserva ComicInfo.xml, poi aggiornalo

Molti archivi includono un file ComicInfo.xml con titolo, serie, lingua e direzione di lettura. Il suo formato è mantenuto dall'Anansi Project. Due dei suoi campi sono importanti qui:

  • Manga. Lo schema consente Unknown, No, Yes e YesAndRightToLeft. Quest'ultimo è il modo in cui un archivio dice a un lettore di voltare le pagine da destra a sinistra. Le immagini delle pagine non possono portare questa impostazione, quindi se il file viene perso, i lettori che lo usano perdono anche la direzione di lettura.
  • LanguageISO. Contiene il codice della lingua del fumetto. Dopo la traduzione indica ancora la lingua di origine, per esempio ja, finché non lo modifichi.

BookTranslator copia ComicInfo.xml nell'archivio tradotto senza modifiche, quindi i manga da destra a sinistra restano tali nei lettori che supportano il flag. Apri il file in un editor di testo successivamente e cambia LanguageISO nella lingua di destinazione. Se il file ha una tabella <Pages>, le sue voci puntano alle pagine per posizione, quindi corrispondono ancora purché tu non abbia riordinato le pagine. Valori come ImageSize descrivono le immagini originali e non corrisponderanno più alle pagine PNG tradotte. Uno strumento di libreria che si basa su di essi potrebbe dover riesaminare il file.

Cosa fa BookTranslator con un CBZ

Quando carichi un fumetto .cbz, BookTranslator:

  1. elenca le immagini delle pagine (PNG, JPEG, WebP, GIF, BMP o TIFF) in ordine naturale e salta le voci superflue;
  2. elabora ogni pagina con la stessa pipeline usata per le immagini singole. Individua il testo, rimuove il lettering originale e disegna la traduzione al suo posto, lavorando su alcune pagine alla volta;
  3. crea un nuovo .cbz con ogni pagina tradotta salvata come PNG nella stessa posizione, più tutti gli altri file dell'archivio originale.

Alcuni dettagli è utile conoscerli prima di pagare:

  • Il prezzo dipende dal numero di pagine. Ogni pagina è un'esecuzione completa di traduzione di immagini, quindi un CBZ viene prezzato per pagina anziché per parola. Il preventivo appare dopo il caricamento, prima del pagamento. Rimuovere le voci superflue e le immagini non di pagina non cambia il prezzo, perché non vengono conteggiate come pagine.
  • Una pagina non riuscita mantiene l'immagine originale. Se una singola pagina fallisce, resta nella lingua di origine e nella posizione corretta, così il fumetto è comunque completo. Se fallisce più del 30% delle pagine, l'attività fallisce invece di consegnare un libro in gran parte non tradotto.
  • Ottieni solo il fumetto tradotto. Gli archivi di fumetti non hanno una versione bilingue affiancata.
  • Le pagine tornano come PNG. L'archivio tradotto può essere notevolmente più grande di un originale JPEG.

Se ti serve anche il testo giapponese stesso, ad esempio da volumi manga scansionati con colonne verticali e furigana, la nostra guida all'OCR per testo verticale giapponese tratta questi problemi di ordine di lettura per le pagine di testo.

Prima di caricare: accesso ai file

Questa guida presuppone che il fumetto sia un file che possiedi e puoi aprire liberamente, come un acquisto senza DRM, le tue scansioni o un tuo lavoro. Le app degli store spesso forniscono fumetti in formati protetti che si aprono solo nel loro lettore. Rinominare o riconfezionare quei file non cambia la situazione. Se non sei sicuro, leggi prima come verificare la presenza di DRM in un ebook prima della traduzione. Scaricare un file non ti dà inoltre il permesso di condividere o pubblicare una sua traduzione.

Traduci il fumetto

Una volta che il verificatore segnala nessun problema di ordinamento e ogni pagina è PNG, JPEG o WebP, carica il CBZ nel traduttore di manga e controlla il prezzo in base al numero di pagine prima di pagare. Quando la traduzione è pronta, aprila nel lettore che intendi usare. Controlla la copertina, la prima doppia pagina e l'ultima pagina, poi correggi LanguageISO in ComicInfo.xml. Per progetti più lunghi, come una serie che intendi pubblicare, la nostra guida completa alla traduzione di libri tratta revisione, terminologia e coerenza tra i volumi.

Post Correlati