BookTranslator
BookTranslator

Eine große TXT-Datei übersetzen: Kodierung, Kapitel und Zeilenumbrüche

Korrigiere die Kodierung, markiere die Kapitel und entferne harte Zeilenumbrüche, bevor du eine lange .txt-Datei übersetzt. Mit Beispieldateien, einem kostenlosen Prüfprogramm und einem Test mit 9 Durchläufen.

BookTranslator

BookTranslator Team

16 Min. Lesezeit

Um eine große TXT-Datei zu übersetzen, bereite drei Dinge vor, bevor du sie irgendwo hochlädst. Stelle zunächst sicher, dass der Text korrekt dekodiert ist, und speichere ihn als UTF-8. Setze zweitens jede Kapitelüberschrift in eine eigene Zeile mit einer Leerzeile davor und dahinter. Wenn die Datei drittens Zeilen an einer festen Breite umbricht, füge diese Zeilen zusammen, sodass jeder Absatz eine Zeile bildet, mit einer Leerzeile zwischen den Absätzen. Übersetze dann die gesamte Datei und vergleiche anschließend die Absatz- und Kapitelanzahl zwischen dem Ausgangstext und der Übersetzung.

Eine reine Textdatei hat keine Stile, keine Überschriften und keine Metadaten. Alles, was ein Übersetzungswerkzeug über ihre Struktur weiß, stammt aus den Bytes und den Zeilenumbrüchen. Deshalb tauchen dieselben drei Probleme immer wieder auf: Die Bytes werden in der falschen Kodierung gelesen, die Kapitel lassen sich nicht von gewöhnlichen Zeilen unterscheiden, oder die Zeilenumbrüche verraten nichts darüber, wo ein Satz endet.

Wir haben Beispieldateien in vier Kodierungen erstellt, ein kostenloses Prüfprogramm geschrieben und eine hart umbrochene Kurzgeschichte neunmal mit einem lokalen Modell ins vereinfachte Chinesisch übersetzt. Das Modell kam mit den harten Umbrüchen gut zurecht, wenn es die ganze Datei sah. In allen drei Durchläufen, in denen die Datei nach Zeilenanzahl in Stücke geschnitten wurde, zerbrach es Sätze und schrieb die Handlung einer Figur einer anderen zu.

Kurzcheckliste

PrüfpunktSo sieht es gut ausSo behebst du es
KodierungDie ersten Zeilen werden korrekt gelesen; die Datei ist UTF-8Mit der richtigen Kodierung erneut öffnen und dann als UTF-8 speichern
Byte Order MarkKeines oder eines, von dem du weißtSpeichere als „UTF-8“ statt „UTF-8 mit BOM“, wenn ein Werkzeug sich beschwert
KapitelüberschriftenJede allein in einer Zeile, mit einer Leerzeile davor und dahinterKorrigiere die wenigen Überschriften, die in den Text hineinlaufen
AbsätzeEine Leerzeile zwischen den AbsätzenFüge Leerzeilen dort ein, wo Absätze nur mit einem Einzug beginnen
Harte ZeilenumbrücheJeder Absatz ist eine lange ZeileFüge Zeilen innerhalb von Absätzen zusammen, aber lass Verse, Briefe und Listen unangetastet
ZeilenendenEin Stil durchgehendAlte Mac-CR-Zeilenenden konvertieren; LF und CRLF sind beide in Ordnung
Beschädigter TextKeine �-ZeichenBesorgen Sie sich eine bessere Kopie. Konvertieren kann verlorene Zeichen nicht zurückbringen

Der Prüfer berichtet über jede Zeile und korrigiert die Kodierung, die Byte-Reihenfolge-Markierung, die Zeilenenden und den harten Zeilenumbruch. Kapitelüberschriften und fehlende Leerzeilen müssen Sie von Hand korrigieren. Führen Sie python3 check_txt.py inspect yourfile.txt aus, um den Bericht zu sehen, und python3 check_txt.py convert yourfile.txt clean.txt --unwrap, um eine UTF-8-Kopie mit zusammengefügten Absätzen zu schreiben. Es benötigt nur Python 3 und ändert niemals die Originaldatei.

Schritt 1: Die Kodierung richtig hinbekommen

Eine TXT-Datei ist eine Folge von Bytes. Die Kodierung ist die Regel, die diese Bytes in Zeichen umwandelt, und die Datei sagt nicht, welche Regel verwendet wurde. Wenn ein Programm falsch rät, erhalten Sie Mojibake: Text, der verstümmelt ist, oder schlimmer, Text, der in Ordnung aussieht, aber nicht das ist, was geschrieben wurde.

Hier ist derselbe chinesische Ausdruck, 最后一班渡轮 („die letzte Fähre“), gelesen mit der falschen Regel. Wir haben diese mit den in Python integrierten Codecs erzeugt, und Sie können sie mit den Beispieldateien reproduzieren.

Gespeichert alsGelesen alsWas Sie sehen
GB18030Windows-1252×îºóÒ»°à¶ÉÂÖ
GB18030UTF-8���һ�����
UTF-8GBK鏈�鍚庝竴鐝�娓¤疆
Shift_JIS (Japanisch 最後のフェリー)GBK嵟屻偺僼僃儕乕

Die letzte Zeile ist die gefährliche. Japanische Bytes, die als Chinesisch gelesen werden, erzeugen echte chinesische Schriftzeichen, ohne Fehler und ohne �. Ein Übersetzungstool wird sie bereitwillig übersetzen, und das Ergebnis wird Unsinn mit guter Grammatik sein.

Unser Prüfer zeigt, warum Sie sich nicht auf „es hat sich ohne Fehler geöffnet“ verlassen können. Als wir ihn auf der Shift_JIS-Beispieldatei ausführten, dekodierten zwei Kodierungen die gesamte Datei ohne einen einzigen Fehler:

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    第一話 最後のフェリー

Nur die zweite Zeile ist Japanisch. Die erste ist eine Folge seltener chinesischer Schriftzeichen, die niemand geschrieben hat. Bei der chinesischen GB18030-Beispieldatei dekodierten fünf Kodierungen ohne Fehler, und nur eine davon, GB18030, zeigte die Kapitelüberschrift 第一章 最后一班渡轮. Die Regel ist also einfach: Entscheiden Sie die Kodierung, indem Sie die ersten Zeilen lesen, nicht danach, ob ein Programm sich beschwert hat.

Wo die Vermutungen meist danebenliegen:

  • Chinesischer Text von älteren Windows-Systemen oder chinesischen Websites ist oft GBK oder GB18030. GB18030 deckt alles ab, was GBK abdeckt, und der WHATWG Encoding Standard, dem Browser folgen, geht noch weiter: Er besagt, dass „der Decoder von GBK der Decoder von gb18030 ist“. Wenn eine Datei GBK ist, funktioniert das Öffnen als GB18030.
  • Traditionelles Chinesisch aus Taiwan oder Hongkong ist oft Big5.
  • Japanisch ist oft Shift_JIS oder Microsofts erweiterte Version davon, die Windows und Python als cp932 bezeichnen.
  • Koreanisch ist oft EUC-KR.
  • Eine Datei voller NUL-Bytes oder eine, in der jedes zweite Zeichen leer aussieht, ist meist UTF-16 ohne Byte Order Mark.

Ein Byte Order Mark (BOM) ist ein kurzer unsichtbarer Code am Anfang einer Datei, der UTF-8, UTF-16 oder UTF-32 ankündigt. Wenn eines vorhanden ist, sollte man ihm vertrauen. Derselbe Standard sagt, dass „das Byte Order Mark autoritativer ist als alles andere“. Unser Prüfprogramm liest zuerst das BOM und rät nur, wenn keines vorhanden ist.

Speichern Sie die Datei als UTF-8

Sobald der Text korrekt gelesen wird, speichern Sie ihn als UTF-8. Der WHATWG-Standard nennt UTF-8 „die am besten geeignete Kodierung für den Austausch von Unicode“, und es ist die sicherste Wahl für jedes Übersetzungstool.

Es gibt einen zweiten Grund, der besonders für die Übersetzung wichtig ist. Legacy-Kodierungen decken nur die Zeichen ihrer eigenen Region ab. Shift_JIS hat keinen Code für 这, das erste Zeichen von 这是最后一班渡轮, und Big5 hat auch keinen dafür, weil es ein vereinfachtes chinesisches Zeichen ist. Windows-1252 kann kein Kyrillisch speichern. Wenn die übersetzte Datei wieder in der ursprünglichen Legacy-Kodierung geschrieben werden muss, passt die Zielsprache möglicherweise nicht hinein. Der TXT-Übersetzer von BookTranslator erkennt nach eigenen Angaben gängige Kodierungen automatisch und gibt die übersetzte Datei „mit derselben Kodierung wie die Eingabe“ zurück, sodass UTF-8 als Ausgangspunkt die Frage vollständig beseitigt.

Sie können in einem Texteditor konvertieren (mit der richtigen Kodierung öffnen, dann „Speichern unter“ UTF-8), mit iconv -f GB18030 -t UTF-8 in.txt > out.txt unter macOS oder Linux, oder mit dem Prüfprogramm:

python3 check_txt.py convert book.txt book-utf8.txt --encoding gb18030

Wenn die Datei bereits �-Zeichen enthält, ist der Schaden vor Ihnen entstanden. Eine erneute Konvertierung stellt die fehlenden Zeichen nicht wieder her. Suchen Sie nach einer besseren Kopie der Quelle.

Schritt 2: Kapitel leicht auffindbar machen

Kapitel sind aus drei Gründen wichtig. Eine lange Datei wird in Teilen übersetzt, und Kapitelgrenzen sind die saubersten Schnittstellen. Sie möchten jedes Kapitel nach der Übersetzung prüfen. Und wenn Sie den Text später in ein E-Book umwandeln, werden die Kapitelüberschriften zum Inhaltsverzeichnis.

Setzen Sie jede Überschrift in eine eigene Zeile, mit einer Leerzeile davor und danach, und verwenden Sie im gesamten Buch ein einheitliches Muster. Diese Muster zählt unser Prüfprogramm:

  • Chapter 1, Chapter One: The Last Ferry, Part Two, Prologue, Epilogue
  • 第一章, 第12回, 第三話, 第二卷
  • eine Zahl oder eine römische Ziffer allein auf einer Zeile, wie 12 oder XII.

Führen Sie inspect aus und lesen Sie die Liste der gefundenen Überschriften. Wenn das Buch 40 Kapitel hat und das Prüfprogramm 37 findet, verstecken sich drei Überschriften: Eine geht in den ersten Satz über, eine verwendet ein anderes Wort wie „Kap. 7“, oder eine hat Text in derselben Zeile. Korrigieren Sie diese drei von Hand. Das dauert weniger Zeit, als das Problem in einer übersetzten Datei zu finden.

Schritt 3: Harte Zeilenumbrüche vorsichtig entfernen

Manche TXT-Dateien brechen jede Zeile bei einer festen Breite um, damit der Text in ein einfaches Terminal oder ein schmales Fenster passt. Aus PDFs kopierter Text und OCR-Ausgaben machen dasselbe bei der Breite der gedruckten Seite. In diesen Dateien bedeutet ein Zeilenumbruch „die Zeile war voll“, nicht „der Satz oder Absatz endete“.

Harte Umbrüche sind leicht zu erkennen. In unserem hart umbrochenen Beispiel meldete das Prüfprogramm:

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

Die Lösung besteht darin, die Zeilen innerhalb jedes Absatzes zu verbinden und die Leerzeilen zwischen den Absätzen beizubehalten. Die Falle ist Text, dessen Zeilenumbrüche echt sind: Verse, Liedtexte, Briefe, Adressen, Rezepte und Listen. Unser Beispiel enthält einen fünfzeiligen Brief:

My dear Mara,
The key is under the blue pot.
Do not let your uncle sell the boat.
With love, always,
Nonna

Ein pauschales „Ersetze jeden einzelnen Zeilenumbruch durch ein Leerzeichen“ macht daraus eine einzige fortlaufende Zeile. Das --unwrap des Prüfprogramms verbindet einen Absatz nur, wenn die meisten seiner Zeilen nahe an der vollen Breite liegen, sodass Blöcke mit kurzen Zeilen wie dieser Brief unangetastet bleiben. In unserem Beispiel stellte es die ursprüngliche ungebrochene Datei exakt wieder her, Byte für Byte, einschließlich des Briefes. Prüfen Sie in Ihrer eigenen Datei einige verbundene Absätze und jeden Versblock, bevor Sie sich darauf verlassen.

Noch zwei Details. Wenn Sie Zeilen chinesischen oder japanischen Textes verbinden, fügen Sie kein Leerzeichen dazwischen ein; das Prüfprogramm verbindet CJK-Zeilen, einschließlich solcher, die mit CJK-Satzzeichen enden, ohne eines. Und wenn Ihr Text aus OCR stammt, können Wörter auch mit Bindestrichen am Zeilenende getrennt sein, was eigene Entscheidungen erfordert. Unser Leitfaden zur Behebung von OCR-Zeilenumbrüchen und Bindestrichen behandelt das.

Was wir getestet haben: hart umbrochener Text, ganz vs. zerstückelt

Wir wollten wissen, ob hartes Umbrechen die Übersetzung tatsächlich beeinträchtigt oder nur unordentlich aussieht. Für den Test schrieben wir eine Kurzgeschichte mit 396 Wörtern: drei Kapitel, fünfzehn Absätze, Dialoge, den obigen Brief und einen Szenenwechsel mit * * *. Wir speicherten sie zweimal mit denselben Wörtern: ohne Zeilenumbrüche, mit einem Absatz pro Zeile, und hart umbrochen bei 66 Zeichen, die 43 nicht leere Zeilen statt 19 hat.

Dann baten wir ein lokales Modell, sie auf drei Arten ins vereinfachte Chinesisch zu übersetzen, jeweils drei Durchläufe:

  1. Umbrochen, ganze Datei. Die hart umbrochene Datei in einer Anfrage.
  2. Nicht umbrochen, ganze Datei. Die nicht umbrochene Datei in einer Anfrage.
  3. Umbrochen, alle 12 Zeilen geteilt. Die hart umbrochene Datei alle 12 Zeilen geteilt, eine Anfrage pro Teil, die Antworten wieder zusammengefügt. Das passiert, wenn ein Skript oder Tool eine lange Datei nach Zeilenzahl statt nach Absätzen aufteilt.

Das Modell war Qwen 3.6 27B (Q4_K_M) in LM Studio, mit deaktiviertem Thinking und Temperatur 0,3, auf einem Apple M4 Max mit 64 GB Arbeitsspeicher. Jede Anfrage verwendete denselben Ein-Satz-Prompt. Wir führten den Test am 28. Oktober 2026 durch. Das Skript ist run_llm_txt_test.py, alle neun Ausgaben sind unverändert veröffentlicht, und results.csv enthält eine Zeile pro Durchlauf.

Umbrochen, ganze DateiNicht umbrochen, ganze DateiUmbrochen, alle 12 Zeilen geteilt
Absätze beibehalten (15)3 von 3 Durchläufen3 von 3 Durchläufen0 von 3 (jeweils 14)
Kapitelüberschriften beibehalten (3)3 von 33 von 33 von 3
Brief als fünf Zeilen beibehalten3 von 33 von 33 von 3
Sätze an einer Trennstelle abgeschnitten003 in jedem Durchlauf
Aktion der falschen Figur zugewiesen003 von 3 Durchläufen

Der erste Befund hat uns überrascht. Als das Modell die gesamte hart umbrochene Datei sah, hat es die Zeilen selbst zusammengefügt. Alle drei Ausgaben hatten einen Absatz pro Zeile, dieselben 19 Zeilen wie die nicht umbrochenen Durchläufe, und lasen sich genauso gut. Der harte Umbruch allein hat diesem Modell bei dieser kurzen Datei also nicht geschadet.

Das Aufteilen der Datei nach Zeilenanzahl hat dagegen jedes Mal an denselben Stellen geschadet. Drei der 12-Zeilen-Stücke endeten mitten im Satz. Das erste endet bei „He pointed with his“, und das nächste Stück beginnt mit „pen at a three-storey building on the corner.“ Separat übersetzt verlor die zweite Hälfte ihr Subjekt. In zwei Durchläufen kam sie als 她瞥了一眼街角那栋三层楼的建筑 zurück, „sie warf einen Blick auf das dreistöckige Gebäude an der Ecke.“ Im dritten endete sie mit 随后她重新回到填字游戏上, „dann wandte sie sich wieder dem Kreuzworträtsel zu.“ In der Geschichte zeigt der Mann im Fahrkartenhäuschen und wendet sich wieder seinem Kreuzworträtsel zu. In allen drei Durchläufen würde ein Leser des Chinesischen denken, Mara hätte das getan.

Der zweite Schnitt, zwischen „the careful, slightly old-fashioned hand she had learned at a“ und „convent school“, ließ den chinesischen Satz in allen drei Durchläufen bei 那是她在 hängen, „das war, wo sie“, (ein Durchlauf fügte ein verirrtes 一 hinzu), und das Wort „learned“ verschwand. Der dritte Schnitt teilte den Satz über die Fensterläden auf zwei Zeilen auf, und die zweite Hälfte verwandelte „painted, not well, but not long ago“ in abblätternde Farbe: 油漆虽已斑驳 in zwei Durchläufen und 油漆剥落 im dritten. Und weil die Stücke mit einem einzelnen Zeilenumbruch verbunden wurden, verschwand die Leerzeile vor dem Szenenwechsel, weshalb jeder Durchlauf 14 Absätze statt 15 hatte. Unser Prüfprogramm hat die Absatzanzahl erkannt. Das falsche Schriftzeichen konnte es nicht erkennen; das haben wir beim Lesen gefunden.

Was das für Ihre Datei bedeutet:

  • Das Entfernen harter Umbrüche schützt Sie vor Aufteilungen, die Sie nicht kontrollieren. Jede lange Datei wird irgendwo aufgeteilt, sei es durch Ihr eigenes Skript, das Limit eines Chatfensters oder das Tool, in das Sie hochladen. Wenn Absätze einzelne Zeilen sind, die durch Leerzeilen getrennt werden, kann jeder vernünftige Splitter zwischen Absätzen statt innerhalb eines Satzes schneiden.
  • Die schlimmsten Fehler waren flüssig. „Sie warf einen Blick auf das Gebäude“ ist gutes Chinesisch. Ein Leser würde die seltsamen Zeilenumbrüche an jedem Schnitt und das hängende 那是她在 bemerken, aber nichts kennzeichnet das falsche Schriftzeichen oder die abblätternde Farbe als Fehler. Fehler an Trennstellen sind zuerst Bedeutungsfehler, erst danach Formatierungsfehler.
  • Das war ein Modell und eine Kurzgeschichte. Eine so kurze Datei passt in eine Anfrage, sodass die Ganzdatei-Durchläufe nie etwas aufteilen mussten. Ein vollständiger Roman muss aufgeteilt werden, und genau dann zahlt sich die Vorbereitung aus den Schritten 1 bis 3 aus. Diese Dateien testen die Vorbereitung und das Aufteilen, nicht BookTranslators eigene Pipeline.

Eine kleinere Beobachtung: In den sechs Ganzdatei-Durchläufen schrieb das Modell Maras Namen fünfmal als 玛拉 und einmal als 马拉. Jede Ausgabe war in sich konsistent, aber separate Anfragen stimmten nicht miteinander überein. Bei einem langen Buch, das in vielen Stücken übersetzt wird, hält eine Liste mit Namen und ihren vereinbarten Schreibweisen jedes Kapitel in Übereinstimmung. Unser Glossar-Leitfaden zeigt, wie man eine erstellt.

Schritt 4: Übersetzen, dann die Zählungen prüfen

Wenn die Datei sauber ist, ist das Übersetzen der einfache Teil. Sie können sie in BookTranslators TXT-Übersetzer hochladen, der .txt-, .md- und .mdx-Dateien akzeptiert, laut eigenen Angaben TXT-Dateien bis 300 MB verarbeitet und den Preis vor dem Bezahlen anzeigt. Es gibt keine kostenlose Vollübersetzung, aber der Upload selbst zeigt Ihnen die Kosten. Wenn Sie lieber mit einem Chat-Modell oder einem lokalen LLM arbeiten, teilen Sie die Datei selbst an Kapitel- oder Absatzgrenzen auf und führen Sie ein Glossar für Namen. Wenn Ihr Text Markdown statt reiner Prosa ist, lesen Sie unseren Markdown-Übersetzungsleitfaden, denn Markdown-Syntax braucht eigene Regeln.

Vergleichen Sie nach der Übersetzung die beiden Dateien:

python3 check_txt.py compare book-utf8.txt book-translated.txt

Wenn eine der beiden Dateien nicht UTF-8 ist, fügen Sie --source-encoding oder --translated-encoding hinzu. Die Kapitelprüfung kennt englische und chinesische/japanische Überschriftenmuster; für andere Zielsprachen fügen Sie das lokale Wort für „Kapitel“ dem Muster oben im Skript hinzu.

Dies ist der Bericht für einen unserer aufgeteilten Durchläufe:

                            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

Lesen Sie ihn so:

  • Absätze und Kapitelüberschriften sollten übereinstimmen. Ein fehlender Absatz bedeutet oft, dass zwei zusammengeführt oder einer ausgelassen wurde.
  • Nicht leere Zeilen können aus gutem Grund abweichen. Unsere Ganzdatei-Durchläufe mit hartem Umbruch gingen von 43 auf 19 Zeilen zurück, weil das Modell die hart umbrochenen Zeilen zusammengefügt hat, was eine Verbesserung war. Vergleichen Sie Zeilen nur, wenn die Quelle bereits ohne harte Umbrüche war.
  • Übrig gebliebene Zeichen der Ausgangsschrift weisen auf Passagen hin, die überhaupt nicht übersetzt wurden. Ein paar sind normal für Namen, Produktbegriffe oder Zitate; eine ganze Reihe davon ist ein übersprungener Abschnitt.
  • Ersatzzeichen in der Übersetzung bedeuten ein Kodierungsproblem auf dem Ausgabeweg.

Zählungen können Ihnen nicht sagen, ob die Übersetzung richtig ist. Lesen Sie den ersten und letzten Absatz jedes Kapitels und die Absätze auf beiden Seiten jeder Stelle, an der die Datei aufgeteilt wurde. Dort hat unser Test jeden ernsten Fehler gefunden.

Häufig gestellte Fragen

Warum sieht meine TXT-Datei in einem Programm gut aus und in einem anderen verunstaltet?

Die beiden Programme haben unterschiedliche Kodierungen vermutet. Eines lag richtig. Finden Sie die Kodierung, die den Text korrekt anzeigt, und speichern Sie die Datei dann als UTF-8, damit jedes Programm sie gleich liest.

Sollte ich eine TXT-Datei vor dem Übersetzen in EPUB oder DOCX umwandeln?

Nur wenn Sie das nutzen möchten, was diese Formate zusätzlich bieten. Eine saubere TXT-Datei mit klaren Kapiteln lässt sich so, wie sie ist, gut übersetzen. Wenn Sie ein Inhaltsverzeichnis, eine Kapitelnavigation und ein E-Book wünschen, das Sie auf einem Gerät lesen können, führt Sie unsere Anleitung zum Umwandeln eines Webromans in ein übersetzungsfertiges EPUB durch die einzelnen Schritte.

Kann ich eine TXT-Datei mit gemischten Sprachen übersetzen?

Ja, aber sagen Sie dem Übersetzer, was unverändert bleiben soll. Zitate oder Begriffe in einer dritten Sprache und Namen, die in ihrer ursprünglichen Schrift bleiben sollen, lassen sich mit einem Glossar oder einer kurzen Anweisung leichter schützen als im Nachhinein korrigieren.

Was ist mit einer TXT-Datei, die ich von einer Website heruntergeladen habe?

Prüfen Sie, ob Sie sie verwenden dürfen. Für gemeinfreie Bücher oder Dateien, die Sie selbst geschrieben haben, gelten die oben beschriebenen Schritte. Die Kodierung oder das Format einer Datei sagt nichts über ihr Urheberrecht aus.

Verwandte Beiträge