BookTranslator
BookTranslator

Как да преведете RTF файл: какво оцелява и какво се чупи

Какво се случва с абзаците, таблиците, бележките под линия, връзките и форматирането, когато се превежда RTF файл, защо файловете от TextEdit се нуждаят от допълнителна стъпка и безплатен инструмент за проверка.

BookTranslator

BookTranslator Team

13 мин. четене

За да преведете RTF файл, качете целия .rtf файл в преводач, който разчита RTF, и след това проверете резултата. BookTranslator приема RTF. Той прочита текста абзац по абзац, превежда го и ви връща нов RTF файл и двуезичен RTF файл. Поставянето на текста в чат прозорец или уеб преводач също работи за страница или две, но губите файла и трябва да го създавате наново.

Има едно нещо, което трябва да знаете преди качването. Преведеният файл запазва думите и абзаците ви, но не и форматирането. Удебелен шрифт, заглавия, шрифтове, таблици, връзки и изображения не се връщат. Затова правилният подход зависи от това какво има във файла и коя програма го е запазила. Обикновен ръкопис, запазен от Word, е лесният случай. Файл, запазен от TextEdit на Mac, изисква първо една допълнителна стъпка, иначе всички абзаци се сливат.

Направихме три тестови файла и написахме безплатен инструмент за проверка, който показва какво има в един RTF файл преди качване и какво се е променило след това. Пуснахме тестовите файлове през локално копие на кода за четене и запис на RTF, който BookTranslator използва, с маркер на мястото на модел, така че можете да видите точно кой текст изпраща всеки тестов файл за превод и как се връща файлът.

Бърз отговор: какво се случва с всяка част от файла

Част от файлаКакво се върна в нашия тестКакво да направите
Абзаци, завършващи с \par (Word и повечето Windows програми)Един преведен абзац за всеки оригиналенНищо
Абзаци, завършващи с обратна наклонена черта и нов ред (TextEdit, други Mac програми)Целият файл се изпраща като един абзац, без интервал на мястото на всеки нов редКонвертирайте файла първо (вижте Стъпка 2)
Удебелен, курсив, заглавия, шрифтове, цветове, подравняванеПремахнати. Всеки абзац е с шрифт Times New Roman 12 пунктаФорматирайте отново в Word или преведете DOCX вместо това
ТаблициТекстът от клетките се съединява без интервал: StopTimeNorth pier7:05Преведете DOCX вместо това
Бележки под линияТекстът на бележката под линия се добавя в края на абзаца; номерът на бележката изчезваВърнете бележките под линия ръчно или преведете DOCX
Заглавка на страницатаСтава обикновен абзац там, където се намира във файла (в нашия тест – в началото)Изтрийте я или запазете оригиналната заглавка
ВръзкиТекстът на връзката се запазва и превежда, уеб адресът се премахваДобавете връзките отново
ИзображенияПремахнатиЗапазете оригиналния файл за илюстрациите
Букви с диакритични знаци и нелатински символи (café, 日本)Четат се и се записват правилноНищо
Всяка последователност от 20 или повече символа от 0–9 и a–f (дълги референтни номера, хешове)Изтриват се преди преводаПроверете ги след превода (проверяващият инструмент прави това)

Останалата част от това ръководство показва откъде идва всеки ред и какво да правите с него.

Стъпка 1: Проверете какъв вид RTF имате

RTF е текстов формат с кодове за форматиране. Отворете файла в текстов редактор или изпълнете head -c 120 yourfile.rtf в терминал и погледнете първия ред.

  • Ако съдържа \cocoartf, файлът е запазен от текстовата система на Apple: TextEdit или друго Mac приложение, което я използва.
  • Ако съдържа \rtf1\ansi и няма \cocoartf, най-вероятно е от Word, LibreOffice, WordPad или експорт от приложение за писане.

Разликата е важна, защото двата вида завършват абзаца по различен начин. Word и повечето други текстови процесори записват кода \par в края на всеки абзац. Текстовата система на Apple записва единична обратна наклонена черта в края на реда. И двете са валиден RTF: оригиналната спецификация на RTF на Microsoft от 1989 г. (огледално копие) казва, че обратна наклонена черта, последвана от нов ред, се третира по същия начин като \par, а собственият четец на Apple показва нашия тестов файл от TextEdit като отделни абзаци. Четецът на RTF на BookTranslator разделя абзаците само на \par. Проверихме това в кода му на 3 ноември 2026 г. и в теста по-долу.

Проверяващият инструмент ви казва какъв вид имате и какво друго има във файла. Нужен е само Python 3 и нищо друго:

python3 check_rtf.py sample-word-style.rtf

На нашия тестов файл във стил Word той отпечата:

== sample-word-style.rtf
  par_breaks: 7
  table_cells: 4
  table_rows: 2
  hyperlinks: 1
  fields: 1
  bold_on: 2
  italic_on: 1
  page_breaks: 1
  fonts: 2
  footnotes: 1
  headers: 1
  images: 1
  visible_paragraphs: 7
  WARN 4 table cells: check that cell boundaries survive.
  WARN 1 footnotes: check where this text ends up in the output.
  WARN 1 headers: check where this text ends up in the output.
  WARN 1 hyperlinks: the link text may survive without the URL.
  WARN 1 images: keep the original for the artwork.

На файла от TextEdit първото предупреждение беше това:

  WARN Paragraphs end with a backslash + line break (TextEdit/Cocoa style), not \par. Tools that only split on \par will see one long paragraph.

Ако проверяващият инструмент не показва предупреждения, вашите абзаци, числа и текст трябва да преминат успешно. Получер, заглавия и списъци не задействат предупреждение, но все пак се премахват по RTF пътя, така че проверете Стъпка 2, ако имате нужда от тях.

Какво се върна от нашите тестови файлове

Направихме три малки файла. Всички те, и всичко, което се върна, са в папката с тестови файлове.

  • sample-word-style.rtf е написан на ръка в стила, който Word използва за RTF: \par прекъсвания, горен колонтитул, бележка под линия, връзка, таблица две по две, малко изображение, прекъсване на страница, café, написано като символ от кодова страница, и 日本, написано като Unicode кодове.
  • sample-textedit.rtf е създаден на Mac с textutil -convert rtf, който използва същата текстова система като TextEdit. Той има заглавие, получер и курсив, връзка, списък с водещи символи, таблица и ред с {braces} и обратни наклонени черти в него.
  • sample-long-numbers.rtf има 20-цифрена референтна поръчка, 40-символен хеш на комит и телефонен номер.

Копирахме функциите за четене и запис на RTF от бекенд кода на BookTranslator на 3 ноември 2026 г. и ги стартирахме върху всеки файл. Не беше използван модел. Всеки абзац, който би бил изпратен за превод, беше заменен с [ZH] плюс оригиналния текст. Това показва точно какво би получил моделът и как файлът се сглобява отново, без шума на истински превод.

Файлът в стил Word: шест чисти абзаца, с три изненади

Файлът се върна като шест преведени абзаца, в този ред:

[ZH] Harbor Notes - Draft 2
[ZH] Chapter 3: The Harbor
[ZH] The ferry left at 6:40, an hour before the café opened. Timetable from the 1998 edition.
[ZH] Read the harbor map before you go.
[ZH] StopTimeNorth pier7:05
[ZH] Chapter 4: 日本 (Nihon)

Повечето от това е това, което искате. Всеки абзац беше изпратен веднъж, по ред, и café и 日本 оцеляха при прехода от RTF кодове към текст и обратно. Трите изненади:

  1. Горният колонтитул стана първи абзац. „Harbor Notes - Draft 2“ беше колонтитул, който се отпечатваше в горната част на всяка страница. В преведения файл той е текст в тялото.
  2. Бележката под линия се премести в изречението. „Timetable from the 1998 edition.“ беше бележка под линия към „opened“. Сега тя следва изречението, сякаш е част от него, и номерът на бележката под линия е изчезнал. Модел, който превежда този абзац, вижда един непрекъснат текст и трябва да намерите и преместите бележката под линия обратно на ръка.
  3. Клетките на таблицата се сляха. Четирите клетки „Stop“, „Time“, „North pier“ и „7:05“ станаха един низ StopTimeNorth pier7:05. Моделът може да го раздели на грешно място или да преведе „StopTime“ като една дума.

Преведеният файл няма колонтитул, бележка под линия, таблица, адрес на връзка, изображение и получер. Режимът за сравнение на проверяващия инструмент в Стъпка 4 изброява всичко това.

Файлът от TextEdit: един абзац

Файлът от TextEdit има осем видими абзаца. Всички те бяха изпратени за превод като един абзац:

Chapter 3: The HarborThe ferry left at 6:40, an hour before the market opened.Read the harbor map before you go.	•	Bring cash	•	Keep your ticketStopTimeNorth pier7:05Ana said: "We'll wait {here}" and C:\Users\ana\notes stayed open.

Няма интервал там, където е свършвал всеки абзац: „HarborThe“, „opened.Read“. Преведеният файл също е един абзац. Нашият тестов файл е кратък. В истинска книга, запазена от TextEdit, целият файл става един абзац. Преди превод BookTranslator нарязва много дългите абзаци на парчета от около 6000 знака (около 2000 за китайски, японски или корейски), в краищата на изреченията, където може да ги намери. Тези разрязвания все още попадат в краищата на изреченията вътре в абзаците, но никога в липсващите прекъсвания на абзаци, защото „opened.Read“ не изглежда като край на изречение. Когато всеки абзац е едно изречение, като реплики в диалог или елементи от списък, разрязванията могат да попаднат на запетаи или интервали. Моделът никога не вижда къде са били абзаците и вие получавате обратно една стена от текст.

Къдравите скоби и обратните наклонени черти в последното изречение оцеляха. Те бяха екранирани правилно при изхода, така че файлът все още се отваря.

Дългите числа: изтрити преди превод

Третият файл се върна така:

[ZH] Your order reference is  and must be quoted in full.
[ZH] The fix landed in commit  last week.
[ZH] Call +44 20 7946 0958 before 5 pm.

Референтната поръчка и хешът на комита са изчезнали, с двоен интервал на мястото на всеки от тях. Четящият премахва всяка последователност от 20 или повече знака, съставена само от цифрите 0–9 и буквите a–f, защото така изглежда вградените данни за изображения в RTF. Дълго число във вашия текст изглежда по същия начин за него. Телефонният номер оцеля, защото неговите групи от цифри са кратки.

Това има значение най-вече за договори, фактури, технически бележки и записи с дълги референтни номера. Проверяващият инструмент изброява всеки такъв низ във вашия изходен файл и ви казва дали някой липсва след превод.

Стъпка 2: Изберете правилния път за вашия файл

Използвайте резултата от проверяващия инструмент, за да изберете един:

Какво съдържа вашият файлНай-добър подходЗащо
Обикновени параграфи от Word или друг приложение, използващо \parКачете RTF файлаПараграфите се връщат един към един; губите само форматиране, което не ви е нужно
Обикновени параграфи от TextEdit (\cocoartf)Първо конвертирайте в DOCX или TXT, след което качете негоЧетецът на RTF ще изпрати целия файл като един параграф
Заглавия, таблици, бележки под линия или форматиране, което трябва да запазитеЗапазете като DOCX в Word или LibreOffice, след което качете DOCX файлаПътят през RTF пресъздава обикновен файл; DOCX минава през работния процес за Word
Дълги референтни номера или хешовеИ двата подхода, след което проверетеУверете се, че всеки номер се е върнал

За да конвертирате файл от TextEdit на Mac, отворете Terminal и изпълнете една от тези команди:

textutil -convert docx notes.rtf
textutil -convert txt notes.rtf

Първата записва notes.docx до оригинала. Когато конвертирахме нашия тестов файл от TextEdit по този начин, DOCX файлът имаше отделен параграф за всеки ред и запази думите с получер и курсив. Не запази таблицата, която се превърна в отделни параграфи, нито връзката. Ако имате нужда от тях, отворете файла в Word или LibreOffice и го запазете като DOCX оттам, след което проверете таблицата преди да качите. Втората команда записва файл с обикновен текст. Използвайте я, когато ви трябват само думите; нашето ръководство за превод на обикновен текст описва какво да проверите в TXT файл.

За документ на Word, в който таблиците, стиловете и заглавките са важни, вижте нашето ръководство за превод на документ на Word със запазване на формата. ЧЗВ на BookTranslator на неговата страница за превод на документи дава същия съвет за стари .doc файлове на Word: превежда текста им и връща RTF файл, и препоръчва първо да ги запазите като DOCX, когато изображенията, таблиците или оформлението трябва да се запазят.

Стъпка 3: Преведете целия файл

Качете файла, изберете целевия език и проверете цената, преди да платите. BookTranslator превежда параграфите по ред. За дълъг файл с повтарящи се имена и термини включете опцията Auto glossary, преди да платите, за да се превеждат по един и същ начин навсякъде.

Получавате два файла:

  • Преведеният файл: всеки параграф на целевия език.
  • Двуезичният файл: всеки оригинален параграф, последван от превода му. Това е по-бързият файл за преглед, защото можете да четете двата един до друг и да забележите параграф, който е пропуснат или прочетен грешно. В двуезичния файл за нашия тест от TextEdit целият документ се появява веднъж на английски и след това веднъж с маркера, което е друг начин да видите проблема с един параграф.

И двата файла са записани като обикновени параграфи с шрифт Times New Roman 12 пункта. Целевите езици с писане от дясно на ляво, като арабски и иврит, са маркирани като параграфи от дясно на ляво. Отворете файловете в Word, LibreOffice или TextEdit, за да ги четете и форматирате.

Стъпка 4: Проверете преведения файл

Стартирайте проверката с изходния файл и превода:

python3 check_rtf.py sample-word-style.rtf sample-word-style-translated.rtf

За нашия файл в стил Word секцията за сравнение показа:

== compare
  CHANGED table_cells: 4 -> 0
  CHANGED footnotes: 1 -> 0
  CHANGED headers: 1 -> 0
  CHANGED hyperlinks: 1 -> 0
  CHANGED images: 1 -> 0
  CHANGED bold_on: 2 -> 0
  CHANGED italic_on: 1 -> 0
  CHANGED page_breaks: 1 -> 0
  CHANGED visible_paragraphs: 7 -> 6

Всеки ред е задача за вашия преглед. Тук броят на абзаците падна от седем на шест, защото редовете на таблицата станаха един абзац. За файла с дълги числа се отпечатаха два реда MISSING, по един за всяко изтрито число. За файла от TextEdit visible_paragraphs: 8 -> 1 е знакът да се върнете към Стъпка 2.

Проверката брои структурата. Тя не може да ви каже дали преводът е добър. Прочетете двуезичния файл, поне началните страници и всеки пасаж с имена, числа или диалог.

Чести проблеми

Преведеният ми RTF е един дълъг абзац. Изходният ви файл най-вероятно идва от TextEdit или друг Mac приложение. Стартирайте проверката върху оригинала. Ако предупреди за прекъсвания на редове с обратна наклонена черта, конвертирайте файла в DOCX или TXT и преведете него вместо това.

Някои думи са слепени, като „StopTime“. Това са били клетки на таблица. RTF таблиците губят границите на клетките си по този маршрут. Преведете DOCX копие на файла, ако таблицата е важна.

Изречение завършва с текст, който не му принадлежи. Това вероятно е бележка под линия. Намерете я в оригинала, след което преместете превода ѝ обратно в бележка под линия в Word.

Липсва число в превода. Ако е било 20 или повече знака от 0–9 и a–f, то е било премахнато преди превода. Копирайте го обратно от оригинала. Редовете MISSING на проверката изброяват всяко едно.

Форматирането е изчезнало. Това е очаквано по RTF маршрута: файлът се преизгражда с обикновени абзаци. Ако имате нужда от форматирането, преведете DOCX копие или приложете стиловете отново след превода. Нашето сравнение на инструменти за превод на DOCX обхваща кои инструменти запазват форматирането на Word и колко добре.

Мога ли да получа резултата като DOCX вместо това? Не от качване на RTF; RTF влиза, RTF излиза. Конвертирайте оригинала в DOCX преди качване и резултатът ще се върне като DOCX.

Свързани публикации