Kako prevesti veliku TXT datoteku: kodiranje, poglavlja i prijelomi redaka
Ispravite kodiranje, označite poglavlja i uklonite tvrde prijelome redaka prije nego što prevedete dugu .txt datoteku. Uz ogledne datoteke, besplatni provjerivač i test s 9 pokretanja.

Da biste preveli veliku TXT datoteku, pripremite tri stvari prije nego što je uopće prenesete. Prvo, provjerite je li tekst ispravno dekodiran i spremite ga kao UTF-8. Drugo, stavite svaki naslov poglavlja u zaseban redak s praznim retkom prije i poslije. Treće, ako datoteka lomi retke na fiksnoj širini, spojite te retke tako da svaki odlomak bude jedan redak, s praznim retkom između odlomaka. Zatim prevedite cijelu datoteku i nakon toga usporedite broj odlomaka i poglavlja između izvornika i prijevoda.
Datoteka običnog teksta nema stilove, naslove ni metapodatke. Sve što alat za prijevod zna o njezinoj strukturi dolazi iz bajtova i prijeloma redaka. Zato se ista tri problema stalno vraćaju: bajtovi se čitaju u pogrešnom kodiranju, poglavlja se ne mogu razlikovati od običnih redaka ili prijelomi redaka ne govore ništa o tome gdje rečenica završava.
Izradili smo ogledne datoteke u četiri kodiranja, napisali besplatni provjerivač i preveli tvrdo lomljenu kratku priču na pojednostavljeni kineski devet puta pomoću lokalnog modela. Model se dobro nosio s tvrdim lomljenjem kad je vidio cijelu datoteku. Razbio je rečenice i pripisao radnju jednog lika drugome u sva tri pokretanja u kojima je datoteka bila razrezana na dijelove prema broju redaka.
Brza provjera
| Provjera | Kako izgleda ispravno | Kako to popraviti |
|---|---|---|
| Kodiranje | Prvi se reci ispravno čitaju; datoteka je UTF-8 | Ponovno otvorite s ispravnim kodiranjem, zatim spremite kao UTF-8 |
| Oznaka redoslijeda bajtova | Nema je ili je poznajete | Spremite kao "UTF-8", a ne "UTF-8 s BOM-om" ako se neki alat žali |
| Naslovi poglavlja | Svaki zasebno u retku, s praznim retkom prije i poslije | Popravite ono malo naslova koji se stope s tekstom |
| Odlomci | Jedan prazan redak između odlomaka | Dodajte prazne retke gdje odlomci počinju samo uvlakom |
| Tvrdo lomljenje | Svaki je odlomak jedan dugi redak | Spojite retke unutar odlomaka, ali ostavite stihove, pisma i popise na miru |
| Prijelomi redaka | Jedan stil kroz cijeli dokument | Pretvorite stare Mac CR završetke; LF i CRLF su oba u redu |
| Oštećeni tekst | Bez znakova � | Nabavite bolju kopiju. Pretvorba ne može vratiti izgubljene znakove |
Alat za provjeru izvještava o svakom retku i ispravlja kodiranje, oznaku redoslijeda bajtova, prijelome redaka i tvrdo prelamanje. Naslove poglavlja i nedostajuće prazne retke morate ispraviti ručno. Pokrenite python3 check_txt.py inspect yourfile.txt da vidite izvještaj i python3 check_txt.py convert yourfile.txt clean.txt --unwrap da zapišete UTF-8 kopiju sa spojenim odlomcima. Potreban je samo Python 3 i nikada ne mijenja izvornu datoteku.
Korak 1: Ispravno postavite kodiranje
TXT datoteka je niz bajtova. Kodiranje je pravilo koje te bajtove pretvara u znakove, a datoteka ne kaže koje je pravilo korišteno. Ako program pogrešno pogodi, dobivate mojibake: iskrivljeni tekst ili, još gore, tekst koji izgleda dobro ali nije ono što je napisano.
Evo iste kineske fraze, 最后一班渡轮 ("posljednji trajekt"), pročitane s pogrešnim pravilom. Generirali smo ih Pythonovim ugrađenim kodecima i možete ih reproducirati s oglednim datotekama.
| Spremljeno kao | Pročitano kao | Što vidite |
|---|---|---|
| GB18030 | Windows-1252 | ×îºóÒ»°à¶ÉÂÖ |
| GB18030 | UTF-8 | ���һ����� |
| UTF-8 | GBK | 鏈�鍚庝竴鐝�娓¤疆 |
| Shift_JIS (japanski 最後のフェリー) | GBK | 嵟屻偺僼僃儕乕 |
Posljednji redak je opasan. Japanski bajtovi pročitani kao kineski daju stvarne kineske znakove, bez pogreške i bez �. Alat za prevođenje će ih rado prevesti, a rezultat će biti besmislica s dobrom gramatikom.
Naš alat za provjeru pokazuje zašto se ne možete pouzdati u "otvorilo se bez pogrešaka". Kada smo ga pokrenuli na Shift_JIS uzorku, dva su kodiranja dekodirala cijelu datoteku bez ijedne pogreške:
encoding: unknown (not UTF-8)
these legacy encodings decode without errors; read the previews,
because a wrong one can still produce real-looking characters:
gb18030 戞堦榖丂嵟屻偺僼僃儕乕
cp932 第一話 最後のフェリー
Samo je drugi redak japanski. Prvi je niz rijetkih kineskih znakova koje nitko nije napisao. Na GB18030 kineskom uzorku pet je kodiranja dekodiralo bez pogrešaka, a samo je jedno od njih, GB18030, pokazalo naslov poglavlja 第一章 最后一班渡轮. Dakle, pravilo je jednostavno: kodiranje odredite čitanjem prvih redaka, a ne prema tome je li se program žalio.
Gdje se pretpostavke obično pokažu pogrešnima:
- Kineski tekst sa starijih Windows sustava ili s kineskih stranica često je u GBK ili GB18030. GB18030 pokriva sve što i GBK, a WHATWG Encoding Standard, kojeg se pridržavaju preglednici, ide i dalje: kaže da je "GBK-ov dekoder gb18030-ov dekoder". Ako je datoteka u GBK, otvaranje kao GB18030 funkcionira.
- Tradicionalni kineski s Tajvana ili iz Hong Konga često je Big5.
- Japanski je često Shift_JIS ili Microsoftova proširena verzija istog, koju Windows i Python nazivaju cp932.
- Korejski je često EUC-KR.
- Datoteka puna NUL bajtova, ili ona u kojoj svaki drugi znak izgleda prazno, obično je UTF-16 bez oznake redoslijeda bajtova.
Oznaka redoslijeda bajtova (BOM) kratki je nevidljivi kod na početku datoteke koji najavljuje UTF-8, UTF-16 ili UTF-32. Kada je prisutna, vjerujte joj. Isti standard kaže da je "oznaka redoslijeda bajtova autoritativnija od bilo čega drugog". Naš provjerivač prvo čita BOM i nagađa samo kada ga nema.
Spremite datoteku kao UTF-8
Kada se tekst ispravno čita, spremite ga kao UTF-8. WHATWG standard naziva UTF-8 "najprikladnijim kodiranjem za razmjenu Unicodea", i to je najsigurniji izbor za bilo koji alat za prevođenje.
Postoji i drugi razlog koji je posebno važan za prevođenje. Naslijeđena kodiranja pokrivaju samo znakove vlastite regije. Shift_JIS nema kod za 这, prvi znak u 这是最后一班渡轮, a ni Big5 nema kod za njega jer je to pojednostavljeni kineski znak. Windows-1252 ne može pohraniti ćirilicu. Ako se prevedena datoteka mora zapisati natrag u izvorno naslijeđeno kodiranje, ciljni jezik možda neće stati. BookTranslatorov TXT prevoditelj navodi da automatski prepoznaje uobičajena kodiranja i vraća prevedenu datoteku "s istim kodiranjem kao ulazna", pa početak s UTF-8 u potpunosti uklanja to pitanje.
Možete pretvoriti u tekstualnom uređivaču (otvorite s ispravnim kodiranjem, zatim "Spremi kao" UTF-8), pomoću iconv -f GB18030 -t UTF-8 in.txt > out.txt na macOS-u ili Linuxu, ili pomoću provjerivača:
python3 check_txt.py convert book.txt book-utf8.txt --encoding gb18030
Ako datoteka već sadrži znakove �, oštećenje se dogodilo prije nego što ste je dobili. Ponovna pretvorba neće vratiti izgubljene znakove. Potražite bolju kopiju izvora.
Korak 2: Neka poglavlja budu lako pronaći
Poglavlja su važna iz tri razloga. Duga datoteka prevodi se u dijelovima, a prijelomi poglavlja najčišća su mjesta za rezanje. Željet ćete provjeriti svako poglavlje nakon prevođenja. A ako kasnije pretvorite tekst u e-knjigu, naslovi poglavlja postaju sadržaj.
Stavite svaki naslov u vlastiti redak, s praznim retkom prije i poslije, i koristite jedan uzorak kroz cijelu knjigu. Ovo su uzorci koje naš provjerivač broji:
Chapter 1,Chapter One: The Last Ferry,Part Two,Prologue,Epilogue第一章,第12回,第三話,第二卷- broj ili rimski broj sam u retku, poput
12iliXII.
Pokrenite inspect i pročitajte popis pronađenih naslova. Ako knjiga ima 40 poglavlja, a provjerivač pronađe 37, tri se naslova skrivaju: jedan se stapa s prvom rečenicom, jedan koristi drugu riječ poput "Ch. 7", ili jedan ima tekst u istom retku. Popravite ta tri ručno. To traje kraće od pronalaženja problema u prevedenoj datoteci.
Korak 3: Pažljivo uklonite tvrde prijelome redaka
Neke TXT datoteke lome svaki redak na fiksnoj širini kako bi tekst stao u običan terminal ili uski prozor. Tekst kopiran iz PDF-ova i OCR izlaz čine isto na širini tiskane stranice. U tim datotekama prijelom retka znači "redak je bio pun", a ne "rečenica ili odlomak je završio".
Tvrdo lomljenje lako je uočiti. U našem uzorku s tvrdim lomljenjem provjerivač je izvijestio:
non-empty lines: 43; longest line: 66 chars; 25 lines within 12 chars of the longest
line breaks inside paragraphs that do not end a sentence: 23
looks hard-wrapped: consider convert --unwrap
Rješenje je spojiti retke unutar svakog odlomka i zadržati prazne retke između odlomaka. Zamka je tekst kojemu su prijelomi redaka stvarni: stihovi, stihovi pjesama, pisma, adrese, recepti i popisi. Naš uzorak uključuje pismo od pet redaka:
My dear Mara,
The key is under the blue pot.
Do not let your uncle sell the boat.
With love, always,
Nonna
Grubo "zamijeni svaki pojedinačni prijelom retka razmakom" pretvara to u jedan neprekinuti redak. Provjerivačev --unwrap spaja odlomak samo kada većina njegovih redaka ide blizu pune širine, pa blokovi kratkih redaka poput ovog pisma ostaju netaknuti. Na našem uzorku točno je obnovio izvornu datoteku bez omatanja, bajt po bajt, uključujući pismo. Na vlastitoj datoteci provjerite nekoliko spojenih odlomaka i svaki blok stihova prije nego što mu povjerujete.
Još dva detalja. Kada spajate retke kineskog ili japanskog teksta, ne dodajte razmak između njih; provjerivač spaja CJK retke, uključujući retke koji završavaju CJK interpunkcijom, bez razmaka. A ako vaš tekst dolazi iz OCR-a, riječi mogu biti razdvojene i crticama na krajevima redaka, što zahtijeva vlastite odluke. Naš vodič za popravljanje OCR prijeloma redaka i rastavljanja crticama pokriva to.
Što smo testirali: tekst s tvrdim lomljenjem, cijeli nasuprot razrezanim
Željeli smo saznati šteti li tvrdo prelamanje zapravo prijevodu ili samo izgleda neuredno. Za test smo napisali kratku priču od 396 riječi: tri poglavlja, petnaest odlomaka, dijalog, gore navedeno pismo i prijelom scene * * *. Spremili smo je dvaput s istim riječima: bez prelamanja, s jednim odlomkom po retku, i tvrdo prelomljenu na 66 znakova, koja ima 43 neprazna retka umjesto 19.
Zatim smo zamolili lokalni model da je prevede na pojednostavljeni kineski na tri načina, po tri puta svaki:
- Prelomljeno, cijela datoteka. Tvrdo prelomljena datoteka u jednom zahtjevu.
- Bez prelamanja, cijela datoteka. Datoteka bez prelamanja u jednom zahtjevu.
- Prelomljeno, rezano svakih 12 redaka. Tvrdo prelomljena datoteka podijeljena svakih 12 redaka, jedan zahtjev po dijelu, a odgovori su ponovno spojeni. To se događa kada skripta ili alat dugi dokument podijeli prema broju redaka umjesto prema odlomcima.
Model je bio Qwen 3.6 27B (Q4_K_M) u LM Studiju, s isključenim razmišljanjem i temperaturom 0,3, na Apple M4 Max sa 64 GB memorije. Svaki je zahtjev koristio isti prompt od jedne rečenice. Pokrenuli smo ga 28. listopada 2026. Skripta je run_llm_txt_test.py, svih devet izlaza objavljeno je neuređeno, a results.csv ima jedan redak po pokretanju.
| Prelomljeno, cijela datoteka | Bez prelamanja, cijela datoteka | Prelomljeno, rezano svakih 12 redaka | |
|---|---|---|---|
| Zadržani odlomci (15) | 3 od 3 pokretanja | 3 od 3 pokretanja | 0 od 3 (svaki put 14) |
| Zadržani naslovi poglavlja (3) | 3 od 3 | 3 od 3 | 3 od 3 |
| Pismo zadržano kao pet redaka | 3 od 3 | 3 od 3 | 3 od 3 |
| Rečenice prerezane na mjestu prijeloma | 0 | 0 | 3 u svakom pokretanju |
| Radnja dodijeljena pogrešnom liku | 0 | 0 | 3 od 3 pokretanja |
Prvo otkriće nas je iznenadilo. Kad je model vidio cijelu datoteku s tvrdim prijelomima redaka, sam je spojio retke. Sva tri izlaza imala su jedan odlomak po retku, istih 19 redaka kao i pokretanja bez prijeloma, i čitala su se jednako dobro. Dakle, samo tvrdo lomljenje redaka nije naškodilo ovom modelu na ovoj kratkoj datoteci.
Rezanje datoteke prema broju redaka je naškodilo, i to na istim mjestima svaki put. Tri od 12 dijelova završila su nasred rečenice. Prvi završava s "He pointed with his", a sljedeći dio počinje s "pen at a three-storey building on the corner." Prevedena zasebno, druga polovica izgubila je subjekt. U dva pokretanja vratila se kao 她瞥了一眼街角那栋三层楼的建筑, "ona je bacila pogled na trokatnicu na uglu." U trećem je završila s 随后她重新回到填字游戏上, "zatim se vratila križaljci." U priči muškarac u blagajni pokazuje i vraća se svojoj križaljci. U sva tri pokretanja, čitatelj kineskog pomislio bi da je to učinila Mara.
Drugi rez, između "the careful, slightly old-fashioned hand she had learned at a" i "convent school," ostavio je kinesku rečenicu visjeti na 那是她在, "to je bilo gdje je ona," u sva tri pokretanja (jedno pokretanje dodalo je zalutalo 一), a riječ "learned" je nestala. Treći rez podijelio je rečenicu o kapcima na dva retka, a druga polovica pretvorila je "painted, not well, but not long ago" u ljuštenje boje: 油漆虽已斑驳 u dva pokretanja i 油漆剥落 u trećem. I budući da su dijelovi spojeni jednim prijelomom retka, prazan redak prije prijeloma scene nestao je, zbog čega je svako pokretanje imalo 14 odlomaka umjesto 15. Naš provjerivač uhvatio je broj odlomaka. Nije mogao uhvatiti pogrešan znak; to smo otkrili čitanjem.
Što to znači za vašu datoteku:
- Rasklapanje vas štiti od razdjelnika koje ne kontrolirate. Svaka duga datoteka negdje se dijeli, bilo vašom skriptom, ograničenjem prozora za razgovor ili alatom u koji je učitavate. Ako su odlomci pojedinačni reci odvojeni praznim recima, svaki razuman razdjelnik može rezati između odlomaka umjesto unutar rečenice.
- Najgore pogreške bile su tečne. "Ona je bacila pogled na zgradu" dobar je kineski. Čitatelj bi primijetio neobične prijelome redaka na svakom rezu i visjeće 那是她在, ali ništa ne označava pogrešan znak ili ljuštenje boje kao pogreške. Pogreške na mjestima rezanja prvo su značenjske, a drugo formatne.
- Ovo je bio jedan model i jedna kratka priča. Datoteka ove duljine stane u jedan zahtjev, pa pokretanja s cijelom datotekom nikada nisu morala ništa dijeliti. Pravi roman mora se podijeliti, i upravo se tada isplati priprema iz koraka 1 do 3. Ove datoteke testiraju pripremu i dijeljenje, a ne vlastiti proces BookTranslatora.
Jedno manje zapažanje: u šest pokretanja s cijelom datotekom model je Marinino ime napisao kao 玛拉 u pet i 马拉 u jednom. Svaki je izlaz bio dosljedan sam sa sobom, ali zasebni zahtjevi nisu se slagali međusobno. Za dugu knjigu prevedenu u mnogo dijelova, popis imena i njihovih dogovorenih pravopisa drži svako poglavlje usklađenim. Naš vodič kroz pojmovnik pokazuje kako ga izraditi.
Korak 4: Prevedite, zatim provjerite brojanja
Kad je datoteka čista, prevođenje je laki dio. Možete je učitati u BookTranslatorov TXT prevoditelj, koji prihvaća .txt, .md i .mdx datoteke, navodi da obrađuje TXT datoteke do 300 MB i prikazuje cijenu prije plaćanja. Nema besplatnog cjelovitog prijevoda, ali samo učitavanje pokazuje koliko košta. Ako radije radite s modelom za razgovor ili lokalnim LLM-om, sami podijelite datoteku na granicama poglavlja ili odlomaka i vodite pojmovnik za imena. Ako je vaš tekst Markdown, a ne obična proza, pogledajte naš vodič za prevođenje Markdowna, jer Markdown sintaksa ima vlastita pravila.
Nakon prevođenja usporedite dvije datoteke:
python3 check_txt.py compare book-utf8.txt book-translated.txt
Ako ni jedna datoteka nije UTF-8, dodajte --source-encoding ili --translated-encoding. Provjera poglavlja poznaje engleske i kineske/japanske obrasce naslova; za druge ciljne jezike dodajte lokalnu riječ za "poglavlje" u obrazac na vrhu skripte.
Ovo je izvještaj za jedno od naših pokretanja s rezanjem:
source translated
paragraphs 15 14 <- differs
chapter headings 3 3
non-empty lines 43 24 <- differs
scene breaks (* * *) 1 1
replacement chars 0 0
source script LATIN characters left in translation: 0
Čitajte ga ovako:
- Odlomci i naslovi poglavlja trebali bi se podudarati. Nedostajući odlomak često znači da su dva spojena ili da je jedan izostavljen.
- Ne-prazni reci mogu se razlikovati s dobrim razlogom. Naša pokretanja s cijelom datotekom i tvrdim prijelomima prešla su s 43 retka na 19 jer je model spojio tvrdo lomljene retke, što je bilo poboljšanje. Uspoređujte retke samo kad je izvor već bio bez tvrdih prijeloma.
- Preostali znakovi izvornog pisma upućuju na odlomke koji uopće nisu prevedeni. Nekoliko ih je normalno za imena, nazive proizvoda ili citate; niz njih znači preskočen odjeljak.
- Zamjenski znakovi u prijevodu znače problem s kodiranjem na izlazu.
Brojanja vam ne mogu reći je li prijevod točan. Pročitajte prvi i posljednji odlomak svakog poglavlja te odlomke s obje strane svakog mjesta gdje je datoteka podijeljena. Tu je naš test pronašao svaku ozbiljnu pogrešku.
Često postavljana pitanja
Zašto moja TXT datoteka izgleda dobro u jednom programu, a iskrivljeno u drugom?
Dva programa pogodila su različita kodiranja. Jedan je pogodio ispravno. Pronađite kodiranje koje ispravno prikazuje tekst, zatim spremite datoteku kao UTF-8 kako bi je svaki program čitao na isti način.
Trebam li pretvoriti TXT datoteku u EPUB ili DOCX prije prevođenja?
Samo ako želite ono što ti formati dodaju. Čista TXT datoteka s jasnim poglavljima dobro se prevodi i takva kakva jest. Ako želite sadržaj, navigaciju po poglavljima i e-knjigu koju možete čitati na uređaju, naš vodič za pretvaranje web romana u EPUB spreman za prijevod prolazi kroz to.
Mogu li prevesti TXT datoteku s više jezika?
Da, ali recite prevoditelju što da ostavi na miru. Citati ili pojmovi na trećem jeziku i imena koja trebaju ostati u izvornom pismu lakše se zaštite pojmovnikom ili kratkom uputom nego da ih poslije ispravljate.
A što s TXT datotekom koju sam preuzeo s web stranice?
Provjerite imate li pravo koristiti je. Za knjige u javnom vlasništvu ili datoteke koje ste sami napisali vrijede gornji koraci. Kodiranje ili format datoteke ne govore ništa o autorskim pravima.
Povezane objave





