Cómo traducir un archivo TXT grande: codificación, capítulos y saltos de línea
Corrige la codificación, marca los capítulos y deshaz los saltos de línea forzados antes de traducir un archivo .txt largo. Con archivos de ejemplo, un verificador gratuito y una prueba de 9 ejecuciones.

Para traducir un archivo TXT grande, prepara tres cosas antes de subirlo a cualquier sitio. Primero, asegúrate de que el texto se decodifica correctamente y guárdalo como UTF-8. Segundo, pon cada título de capítulo en su propia línea con una línea en blanco antes y después. Tercero, si el archivo corta las líneas a un ancho fijo, une esas líneas para que cada párrafo sea una sola línea, con una línea en blanco entre párrafos. Después traduce el archivo completo y, a continuación, compara el número de párrafos y de capítulos entre el original y la traducción.
Un archivo de texto plano no tiene estilos, ni encabezados, ni metadatos. Todo lo que una herramienta de traducción sabe sobre su estructura proviene de los bytes y de los saltos de línea. Por eso los mismos tres problemas no dejan de aparecer: los bytes se leen con la codificación equivocada, los capítulos no se distinguen de las líneas normales o los saltos de línea no dicen nada sobre dónde termina una frase.
Creamos archivos de ejemplo en cuatro codificaciones, escribimos un verificador gratuito y tradujimos un relato corto con saltos de línea forzados al chino simplificado nueve veces con un modelo local. El modelo manejó bien los saltos forzados cuando vio el archivo completo. Rompió frases y atribuyó la acción de un personaje a otro en las tres ejecuciones en las que el archivo se cortó en trozos por número de líneas.
Lista de comprobación rápida
| Comprobación | Cómo se ve cuando está bien | Cómo corregirlo |
|---|---|---|
| Codificación | Las primeras líneas se leen correctamente; el archivo es UTF-8 | Vuelve a abrirlo con la codificación correcta y guárdalo como UTF-8 |
| Marca de orden de bytes | Ninguna, o una que conozcas | Guarda como «UTF-8» en lugar de «UTF-8 con BOM» si alguna herramienta se queja |
| Títulos de capítulo | Cada uno solo en una línea, con una línea en blanco antes y después | Corrige los pocos títulos que se mezclan con el texto |
| Párrafos | Una línea en blanco entre párrafos | Añade líneas en blanco donde los párrafos solo empiezan con una sangría |
| Saltos de línea forzados | Cada párrafo es una sola línea larga | Une las líneas dentro de los párrafos, pero deja intactos los versos, las cartas y las listas |
| Finales de línea | Un solo estilo en todo el archivo | Convierte los finales CR antiguos de Mac; LF y CRLF son igual de válidos |
| Texto dañado | Sin caracteres � | Consigue una copia mejor. La conversión no puede recuperar los caracteres perdidos |
El verificador informa sobre cada fila y corrige la codificación, la marca de orden de bytes, los finales de línea y el ajuste duro. Los encabezados de capítulo y las líneas en blanco faltantes te toca corregirlos a mano. Ejecuta python3 check_txt.py inspect yourfile.txt para ver el informe, y python3 check_txt.py convert yourfile.txt clean.txt --unwrap para escribir una copia en UTF-8 con los párrafos unidos. Solo necesita Python 3 y nunca modifica el archivo original.
Paso 1: Acierta con la codificación
Un archivo TXT es una secuencia de bytes. La codificación es la regla que convierte esos bytes en caracteres, y el archivo no indica qué regla se usó. Si un programa adivina mal, obtienes mojibake: texto distorsionado o, peor aún, texto que parece correcto pero no es lo que se escribió.
Aquí está la misma frase en chino, 最后一班渡轮 («el último ferry»), leída con la regla equivocada. Las generamos con los códecs integrados de Python, y puedes reproducirlas con los archivos de ejemplo.
| Guardado como | Leído como | Lo que ves |
|---|---|---|
| GB18030 | Windows-1252 | ×îºóÒ»°à¶ÉÂÖ |
| GB18030 | UTF-8 | ���һ����� |
| UTF-8 | GBK | 鏈�鍚庝竴鐝�娓¤疆 |
| Shift_JIS (japonés 最後のフェリー) | GBK | 嵟屻偺僼僃儕乕 |
La última fila es la peligrosa. Los bytes japoneses leídos como chino producen caracteres chinos reales, sin error y sin �. Una herramienta de traducción los traducirá sin problema, y el resultado será un sinsentido con buena gramática.
Nuestro verificador muestra por qué no puedes fiarte de «se abrió sin errores». Cuando lo ejecutamos con la muestra Shift_JIS, dos codificaciones decodificaron todo el archivo sin un solo error:
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 第一話 最後のフェリー
Solo la segunda línea es japonés. La primera es una cadena de caracteres chinos raros que nadie escribió. En la muestra china GB18030, cinco codificaciones decodificaron sin errores, y solo una de ellas, GB18030, mostró el encabezado de capítulo 第一章 最后一班渡轮. Así que la regla es simple: decide la codificación leyendo las primeras líneas, no por si un programa se quejó.
Donde suelen fallar las conjeturas:
- El texto chino de sistemas Windows antiguos o de sitios chinos suele estar en GBK o GB18030. GB18030 cubre todo lo que cubre GBK, y el Estándar de Codificación WHATWG, que siguen los navegadores, va más allá: afirma que «el decodificador de GBK es el decodificador de gb18030». Si un archivo está en GBK, abrirlo como GB18030 funciona.
- El chino tradicional de Taiwán o Hong Kong suele estar en Big5.
- El japonés suele estar en Shift_JIS, o en la versión extendida de Microsoft, que Windows y Python llaman cp932.
- El coreano suele estar en EUC-KR.
- Un archivo lleno de bytes NUL, o uno en el que todos los demás caracteres parecen vacíos, normalmente es UTF-16 sin marca de orden de bytes.
Una marca de orden de bytes (BOM) es un código corto e invisible al inicio de un archivo que anuncia UTF-8, UTF-16 o UTF-32. Cuando está presente, confía en ella. El mismo estándar dice que «la marca de orden de bytes tiene más autoridad que cualquier otra cosa». Nuestro verificador lee primero la BOM y solo hace conjeturas cuando no hay ninguna.
Guarda el archivo como UTF-8
Una vez que el texto se lee correctamente, guárdalo como UTF-8. El estándar WHATWG llama a UTF-8 «la codificación más apropiada para el intercambio de Unicode», y es la opción más segura para cualquier herramienta de traducción.
Hay una segunda razón que importa especialmente para la traducción. Las codificaciones heredadas solo cubren los caracteres de su propia región. Shift_JIS no tiene código para 这, el primer carácter de 这是最后一班渡轮, y Big5 tampoco lo tiene, porque es un carácter chino simplificado. Windows-1252 no puede almacenar cirílico. Si el archivo traducido tiene que escribirse de nuevo en la codificación heredada original, es posible que el idioma de destino no encaje. El traductor de TXT de BookTranslator indica que detecta automáticamente las codificaciones comunes y devuelve el archivo traducido «con la misma codificación que la entrada», así que empezar desde UTF-8 elimina la cuestión por completo.
Puedes convertir en un editor de texto (abre con la codificación correcta y luego «Guardar como» UTF-8), con iconv -f GB18030 -t UTF-8 in.txt > out.txt en macOS o Linux, o con el verificador:
python3 check_txt.py convert book.txt book-utf8.txt --encoding gb18030
Si el archivo ya contiene caracteres �, el daño ocurrió antes de que lo recibieras. Convertir de nuevo no restaurará los caracteres faltantes. Busca una mejor copia de la fuente.
Paso 2: Haz que los capítulos sean fáciles de encontrar
Los capítulos importan por tres razones. Un archivo largo se traduce por partes, y los saltos de capítulo son los lugares más limpios para cortar. Querrás revisar cada capítulo después de la traducción. Y si más adelante conviertes el texto en un ebook, los encabezados de capítulo se convertirán en la tabla de contenidos.
Pon cada encabezado en su propia línea, con una línea en blanco antes y después, y usa un mismo patrón en todo el libro. Estos son los patrones que cuenta nuestro verificador:
Chapter 1,Chapter One: The Last Ferry,Part Two,Prologue,Epilogue第一章,第12回,第三話,第二卷- un número o un numeral romano solo en una línea, como
12oXII.
Ejecuta inspect y lee la lista de encabezados que encontró. Si el libro tiene 40 capítulos y el verificador encuentra 37, hay tres encabezados escondidos: uno se une a la primera frase, otro usa una palabra diferente como «Cap. 7», o uno tiene texto en la misma línea. Corrige esos tres a mano. Lleva menos tiempo que encontrar el problema en un archivo traducido.
Paso 3: Deshaz los saltos de línea duros, con cuidado
Algunos archivos TXT cortan cada línea a un ancho fijo, para que el texto quepa en una terminal simple o en una ventana estrecha. El texto copiado de PDF y la salida de OCR hacen lo mismo al ancho de la página impresa. En estos archivos, un salto de línea significa «la línea estaba llena», no «la frase o el párrafo terminó».
El ajuste duro es fácil de detectar. En nuestra muestra con ajuste duro, el verificador informó:
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
La solución es unir las líneas dentro de cada párrafo y mantener las líneas en blanco entre párrafos. La trampa es el texto cuyos saltos de línea son reales: versos, letras de canciones, cartas, direcciones, recetas y listas. Nuestra muestra incluye una carta de cinco líneas:
My dear Mara,
The key is under the blue pot.
Do not let your uncle sell the boat.
With love, always,
Nonna
Un «reemplaza cada salto de línea simple por un espacio» sin matices convierte eso en una sola línea continua. El --unwrap del verificador solo une un párrafo cuando la mayoría de sus líneas se acercan al ancho completo, así que los bloques de líneas cortas como esta carta se dejan intactos. En nuestra muestra reconstruyó el archivo original sin ajustar exactamente, byte por byte, incluida la carta. En tu propio archivo, revisa algunos párrafos unidos y cada bloque de versos antes de confiar en él.
Dos detalles más. Cuando unas líneas de texto chino o japonés, no añadas un espacio entre ellas; el verificador une líneas CJK, incluidas las que terminan en puntuación CJK, sin uno. Y si tu texto proviene de OCR, las palabras también pueden estar divididas con guiones al final de las líneas, lo que requiere sus propias decisiones. Nuestra guía para corregir saltos de línea y guiones de OCR lo cubre.
Lo que probamos: texto con ajuste duro, entero vs. cortado
Queríamos saber si el ajuste forzado de líneas realmente perjudica la traducción o solo se ve desordenado. Escribimos un cuento de 396 palabras para la prueba: tres capítulos, quince párrafos, diálogo, la carta anterior y un salto de escena * * *. Lo guardamos dos veces con las mismas palabras: sin ajuste, con un párrafo por línea, y con ajuste forzado a 66 caracteres, que tiene 43 líneas no vacías en lugar de 19.
Luego pedimos a un modelo local que lo tradujera al chino simplificado de tres maneras, con tres ejecuciones cada una:
- Con ajuste, archivo completo. El archivo con ajuste forzado en una sola solicitud.
- Sin ajuste, archivo completo. El archivo sin ajuste en una sola solicitud.
- Con ajuste, cortado cada 12 líneas. El archivo con ajuste forzado dividido cada 12 líneas, una solicitud por fragmento y las respuestas unidas de nuevo. Esto es lo que ocurre cuando un script o una herramienta divide un archivo largo por número de líneas en lugar de por párrafos.
El modelo fue Qwen 3.6 27B (Q4_K_M) en LM Studio, con el razonamiento desactivado y temperatura 0.3, en un Apple M4 Max con 64 GB de memoria. Cada solicitud usó el mismo prompt de una frase. Lo ejecutamos el 28 de octubre de 2026. El script es run_llm_txt_test.py, las nueve salidas se publican sin editar y results.csv tiene una fila por ejecución.
| Con ajuste, archivo completo | Sin ajuste, archivo completo | Con ajuste, cortado cada 12 líneas | |
|---|---|---|---|
| Párrafos conservados (15) | 3 de 3 ejecuciones | 3 de 3 ejecuciones | 0 de 3 (14 cada vez) |
| Encabezados de capítulo conservados (3) | 3 de 3 | 3 de 3 | 3 de 3 |
| Carta conservada como cinco líneas | 3 de 3 | 3 de 3 | 3 de 3 |
| Oraciones cortadas en un punto de división | 0 | 0 | 3 en cada ejecución |
| Acción atribuida al personaje equivocado | 0 | 0 | 3 de 3 ejecuciones |
El primer hallazgo nos sorprendió. Cuando el modelo vio el archivo completo con saltos de línea forzados, unió las líneas por sí mismo. Las tres salidas tenían un párrafo por línea, las mismas 19 líneas que las ejecuciones sin ajuste, y se leían igual de bien. Así que el ajuste forzado por sí solo no perjudicó a este modelo en este archivo corto.
Cortar el archivo por número de líneas sí perjudicó, en los mismos lugares cada vez. Tres de las piezas de 12 líneas terminaban en medio de una frase. La primera termina en «He pointed with his» y la siguiente pieza empieza con «pen at a three-storey building on the corner.» Traducida por separado, la segunda mitad perdió su sujeto. En dos ejecuciones volvió como 她瞥了一眼街角那栋三层楼的建筑, «ella miró de reojo el edificio de tres pisos de la esquina». En la tercera, terminó con 随后她重新回到填字游戏上, «luego volvió al crucigrama». En la historia, el hombre de la taquilla señala y vuelve a su crucigrama. En las tres ejecuciones, un lector del chino pensaría que fue Mara quien lo hizo.
El segundo corte, entre «the careful, slightly old-fashioned hand she had learned at a» y «convent school,», dejó la frase china colgando en 那是她在, «that was where she,» en las tres ejecuciones (una ejecución añadió un 一 suelto), y la palabra «learned» desapareció. El tercer corte dividió la frase sobre las contraventanas en dos líneas, y la segunda mitad convirtió «painted, not well, but not long ago» en pintura desconchada: 油漆虽已斑驳 en dos ejecuciones y 油漆剥落 en la tercera. Y como las piezas se unieron con un solo salto de línea, la línea en blanco antes del cambio de escena desapareció, por lo que cada ejecución tuvo 14 párrafos en lugar de 15. Nuestro verificador detectó el recuento de párrafos. No pudo detectar el carácter incorrecto; eso lo encontramos leyendo.
Lo que esto significa para tu archivo:
- Deshacer el ajuste de línea te protege de los divisores que no controlas. Todo archivo largo se divide en algún punto, ya sea por tu propio script, el límite de una ventana de chat o la herramienta a la que lo subes. Si los párrafos son líneas individuales separadas por líneas en blanco, cualquier divisor razonable puede cortar entre párrafos en lugar de dentro de una frase.
- Los peores errores eran fluidos. «Ella miró de reojo el edificio» es buen chino. Un lector notaría los saltos de línea extraños en cada corte y el 那是她在 colgando, pero nada marca el carácter incorrecto ni la pintura desconchada como errores. Los errores en los puntos de corte son errores de significado primero, errores de formato segundo.
- Esto fue un modelo y un cuento corto. Un archivo tan corto cabe en una sola solicitud, así que las ejecuciones de archivo completo nunca tuvieron que dividir nada. Una novela completa sí tiene que dividirse, que es exactamente cuando la preparación de los pasos 1 a 3 da sus frutos. Estos archivos prueban la preparación y la división, no el propio pipeline de BookTranslator.
Una observación menor: en las seis ejecuciones de archivo completo, el modelo escribió el nombre de Mara como 玛拉 en cinco y 马拉 en una. Cada salida era coherente consigo misma, pero las solicitudes separadas no coincidían entre sí. Para un libro largo traducido en muchas piezas, una lista de nombres y sus grafías acordadas mantiene alineado cada capítulo. Nuestra guía de glosarios muestra cómo crear una.
Paso 4: Traduce y luego verifica los recuentos
Cuando el archivo está limpio, traducirlo es la parte fácil. Puedes subirlo al traductor de TXT de BookTranslator, que acepta archivos .txt, .md y .mdx, dice que maneja archivos TXT de hasta 300 MB y muestra el precio antes de pagar. No hay traducción completa gratuita, pero la propia subida te indica el costo. Si prefieres trabajar con un modelo de chat o un LLM local, divide el archivo por capítulos o párrafos tú mismo y mantén un glosario para los nombres. Si tu texto es Markdown en lugar de prosa simple, consulta nuestra guía de traducción de Markdown, porque la sintaxis de Markdown necesita sus propias reglas.
Después de traducir, compara los dos archivos:
python3 check_txt.py compare book-utf8.txt book-translated.txt
Si alguno de los archivos no está en UTF-8, añade --source-encoding o --translated-encoding. La verificación de capítulos reconoce patrones de encabezado en inglés y chino/japonés; para otros idiomas de destino, añade la palabra local para «capítulo» al patrón al inicio del script.
Este es el informe de una de nuestras ejecuciones con cortes:
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
Léelo así:
- Los párrafos y los encabezados de capítulo deben coincidir. Un párrafo faltante a menudo significa que se fusionaron dos o se eliminó uno.
- Las líneas no vacías pueden diferir por una buena razón. Nuestras ejecuciones con ajuste de archivo completo pasaron de 43 líneas a 19 porque el modelo unió las líneas con ajuste forzado, lo cual fue una mejora. Compara líneas solo cuando la fuente ya estaba sin ajuste.
- Los caracteres del sistema de escritura de origen sobrantes apuntan a pasajes que no se tradujeron en absoluto. Unos pocos son normales para nombres, términos de productos o citas; una serie de ellos es una sección omitida.
- Los caracteres de reemplazo en la traducción indican un problema de codificación en la salida.
Los recuentos no pueden decirte si la traducción es correcta. Lee el primer y el último párrafo de cada capítulo, y los párrafos a ambos lados de cada lugar donde se dividió el archivo. Ahí es donde nuestra prueba encontró todos los errores graves.
Preguntas frecuentes
¿Por qué mi archivo TXT se ve bien en un programa y distorsionado en otro?
Los dos programas adivinaron codificaciones diferentes. Uno acertó. Encuentra la codificación que muestra el texto correctamente y luego guarda el archivo como UTF-8 para que todos los programas lo lean de la misma manera.
¿Debo convertir un archivo TXT a EPUB o DOCX antes de traducirlo?
Solo si quieres lo que esos formatos aportan. Un archivo TXT limpio con capítulos claros se traduce bien tal cual. Si quieres una tabla de contenidos, navegación por capítulos y un ebook que puedas leer en un dispositivo, nuestra guía para convertir una novela web en un EPUB listo para traducir lo explica paso a paso.
¿Puedo traducir un archivo TXT con varios idiomas?
Sí, pero dile al traductor qué debe dejar intacto. Las citas o términos en un tercer idioma, y los nombres que deben conservar su escritura original, son más fáciles de proteger con un glosario o una instrucción breve que de corregir después.
¿Y un archivo TXT que descargué de un sitio web?
Comprueba que tienes derecho a usarlo. Para libros de dominio público o archivos que hayas escrito tú mismo, se aplican los pasos anteriores. La codificación o el formato de un archivo no te dicen nada sobre sus derechos de autor.
Publicaciones relacionadas





