BookTranslator
BookTranslator

Cum să traduci un fișier RTF: ce se păstrează și ce se pierde

Ce se întâmplă cu paragrafele, tabelele, notele de subsol, linkurile și formatarea atunci când traduci un fișier RTF, de ce fișierele TextEdit necesită un pas suplimentar și un instrument gratuit de verificare.

BookTranslator

BookTranslator Team

14 min de citit

Pentru a traduce un fișier RTF, încarcă întregul fișier .rtf într-un traducător care citește RTF, apoi verifică rezultatul. BookTranslator acceptă RTF. Citește textul paragraf cu paragraf, îl traduce și îți returnează un fișier RTF nou și un fișier RTF bilingv. De asemenea, poți lipi textul într-o fereastră de chat sau într-un traducător web pentru una sau două pagini, dar pierzi fișierul și trebuie să-l reconstruiești.

Există un lucru important de știut înainte de a încărca fișierul. Fișierul tradus păstrează cuvintele și paragrafele tale, dar nu și formatarea. Aldinele, titlurile, fonturile, tabelele, linkurile și imaginile nu sunt păstrate. Așadar, ruta corectă depinde de conținutul fișierului și de aplicația care l-a salvat. Un manuscris simplu salvat din Word este cazul ușor. Un fișier salvat de TextEdit pe Mac necesită mai întâi un pas suplimentar, altfel toate paragrafele se contopesc.

Am creat trei fișiere de test și am scris un instrument gratuit de verificare care arată ce conține un fișier RTF înainte de încărcare și ce s-a schimbat după. Am rulat fișierele de test printr-o copie locală a codului de citire și scriere RTF folosit de BookTranslator, cu un marker în locul unui model, astfel încât să poți vedea exact ce text trimite fiecare fișier de test pentru traducere și cum se întoarce fișierul.

Răspuns rapid: Ce se întâmplă cu fiecare parte a fișierului

Partea din fișierCe a revenit în testul nostruCe trebuie făcut
Paragrafe încheiate cu \par (Word și majoritatea aplicațiilor Windows)Un paragraf tradus pentru fiecareNimic
Paragrafe încheiate cu o bară oblică inversă și un sfârșit de rând (TextEdit, alte aplicații Mac)Întregul fișier trimis ca un singur paragraf, fără spațiu acolo unde era fiecare sfârșit de rândConvertește mai întâi fișierul (vezi Pasul 2)
Aldine, cursive, titluri, fonturi, culori, aliniereEliminate. Fiecare paragraf este în Times New Roman de 12 puncteFormatează din nou în Word sau traduce un DOCX în schimb
TabeleTextul celulelor lipit fără spațiu: StopTimeNorth pier7:05Traduce un DOCX în schimb
Note de subsolTextul notei de subsol adăugat la sfârșitul paragrafului său; numărul notei de subsol a dispărutMută notele de subsol înapoi manual sau traduce un DOCX
Antetul paginiiDevine un paragraf obișnuit acolo unde se află în fișier (la început, în testul nostru)Ștergeți-l sau păstrați antetul original
LinkuriTextul linkului păstrat și tradus, adresa web eliminatăAdăugați linkurile din nou
ImaginiEliminatePăstrați fișierul original pentru grafică
Caractere cu diacritice și non-latine (café, 日本)Citite și scrise corectNimic
Orice șir de 20 sau mai multe caractere din 0–9 și a–f (numere de referință lungi, hash-uri)Șters înainte de traducereVerificați-le după traducere (verificatorul face asta)

Restul acestui ghid arată de unde provine fiecare rând și ce trebuie făcut în privința lui.

Pasul 1: Verificați ce tip de RTF aveți

RTF este un format text cu coduri de formatare în el. Deschideți fișierul într-un editor de text simplu sau rulați head -c 120 yourfile.rtf într-un terminal și uitați-vă la prima linie.

  • Dacă conține \cocoartf, fișierul a fost salvat de sistemul de text al Apple: TextEdit sau o altă aplicație Mac care îl folosește.
  • Dacă conține \rtf1\ansi și nu conține \cocoartf, cel mai probabil provine din Word, LibreOffice, WordPad sau dintr-un export al unei aplicații de scriere.

Diferența contează pentru că cele două tipuri încheie un paragraf în moduri diferite. Word și majoritatea celorlalte procesoare de text scriu codul \par la sfârșitul fiecărui paragraf. Sistemul de text al Apple scrie în schimb o singură bară oblică inversă la sfârșitul liniei. Ambele sunt RTF valid: specificația originală RTF a Microsoft din 1989 (copie oglindă) spune că o bară oblică inversă urmată de o întrerupere de linie este tratată la fel ca \par, iar cititorul propriu al Apple afișează fișierul nostru de test TextEdit ca paragrafe separate. Cititorul RTF al BookTranslator împarte paragrafele doar după \par. Am verificat acest lucru în codul său pe 3 noiembrie 2026 și în testul de mai jos.

Verificatorul vă spune ce tip aveți și ce altceva mai conține fișierul. Are nevoie de Python 3 și de nimic altceva:

python3 check_rtf.py sample-word-style.rtf

Pe fișierul nostru de test în stil Word a afișat:

== 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.

Pe fișierul TextEdit, primul avertisment a fost acesta:

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

Dacă verificatorul nu afișează avertismente, paragrafele, numerele și textul ar trebui să treacă. Aldinele, titlurile și listele nu declanșează un avertisment, dar sunt totuși eliminate pe ruta RTF, așa că verificați Pasul 2 dacă aveți nevoie de ele.

Ce a revenit din fișierele noastre de test

Am creat trei fișiere mici. Toate, împreună cu tot ce a revenit, se află în dosarul fișierelor de test.

  • sample-word-style.rtf este scris manual în stilul folosit de Word pentru RTF: întreruperi \par, un antet de pagină, o notă de subsol, un link, un tabel de doi pe doi, o imagine mică, o întrerupere de pagină, café scris ca caracter de cod de pagină și 日本 scris ca coduri Unicode.
  • sample-textedit.rtf a fost creat pe un Mac cu textutil -convert rtf, care folosește același sistem de text ca TextEdit. Conține un titlu, cuvinte aldine și cursive, un link, o listă cu puncte, un tabel și o linie cu {braces} și bare oblice inverse.
  • sample-long-numbers.rtf conține o referință de comandă de 20 de cifre, un hash de commit de 40 de caractere și un număr de telefon.

Am copiat funcțiile de citire și scriere RTF din codul backend al BookTranslator pe 3 noiembrie 2026 și le-am rulat pe fiecare fișier. Nu a fost folosit niciun model. Fiecare paragraf care ar fi trimis pentru traducere a fost înlocuit cu [ZH] plus textul original. Asta arată exact ce ar primi un model și cum este reconstruit fișierul, fără zgomotul unei traduceri reale.

Fișierul în stil Word: șase paragrafe curate, cu trei surprize

Fișierul a revenit ca șase paragrafe traduse, în această ordine:

[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)

Cea mai mare parte este ceea ce doriți. Fiecare paragraf a fost trimis o dată, în ordine, iar café și 日本 au supraviețuit trecerii de la codurile RTF la text și înapoi. Cele trei surprize:

  1. Antetul de pagină a devenit primul paragraf. „Harbor Notes - Draft 2” era un antet care se tipărea în partea de sus a fiecărei pagini. În fișierul tradus este text de corp.
  2. Nota de subsol s-a mutat în propoziție. „Timetable from the 1998 edition.” era o notă de subsol la „opened”. Acum urmează propoziția ca și cum ar face parte din ea, iar numărul notei de subsol a dispărut. Un model care traduce acel paragraf vede un singur text continuu, iar dumneavoastră trebuie să găsiți și să mutați nota de subsol înapoi manual.
  3. Celulele tabelului s-au unit. Cele patru celule „Stop”, „Time”, „North pier” și „7:05” au devenit șirul unic StopTimeNorth pier7:05. Un model poate să-l împartă în locul greșit sau să traducă „StopTime” ca un singur cuvânt.

Fișierul tradus nu are antet, notă de subsol, tabel, adresă de link, imagine sau aldine. Modul de comparare al verificatorului din Pasul 4 listează toate acestea.

Fișierul TextEdit: un singur paragraf

Fișierul TextEdit are opt paragrafe vizibile. Toate au fost trimise pentru traducere ca un singur paragraf:

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.

Nu există spațiu acolo unde se termina fiecare paragraf: „HarborThe”, „opened.Read”. Fișierul tradus este și el un singur paragraf. Fișierul nostru de test este scurt. Într-o carte reală salvată cu TextEdit, întregul fișier devine un singur paragraf. Înainte de traducere, BookTranslator împarte paragrafele foarte lungi în bucăți de aproximativ 6.000 de caractere (aproximativ 2.000 pentru chineză, japoneză sau coreeană), la sfârșit de propoziție, acolo unde le poate găsi. Acele tăieturi cad totuși la sfârșit de propoziție din interiorul paragrafelor, dar niciodată la întreruperile de paragraf lipsă, pentru că „opened.Read” nu arată ca un sfârșit de propoziție. Acolo unde fiecare paragraf este o singură propoziție, cum ar fi replicile de dialog sau elementele de listă, tăieturile pot cădea la virgule sau spații. Modelul nu vede niciodată unde erau paragrafele, iar dumneavoastră primiți înapoi un zid de text.

Acoladele și barele oblice inverse din ultima propoziție au supraviețuit. Au fost corect escapate la ieșire, așa că fișierul se deschide în continuare.

Numerele lungi: șterse înainte de traducere

Al treilea fișier a revenit astfel:

[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.

Referința de comandă și hash-ul de commit au dispărut, cu un spațiu dublu acolo unde era fiecare. Cititorul elimină orice șir de 20 sau mai multe caractere format doar din cifrele 0–9 și literele a–f, pentru că așa arată datele de imagine încorporate în RTF. Un număr lung din textul dumneavoastră arată la fel pentru el. Numărul de telefon a supraviețuit pentru că grupurile sale de cifre sunt scurte.

Acest lucru contează în principal pentru contracte, facturi, note tehnice și înregistrări cu numere de referință lungi. Verificatorul listează fiecare astfel de șir din fișierul sursă și vă spune dacă unul lipsește după traducere.

Pasul 2: Alegeți ruta potrivită pentru fișierul dumneavoastră

Folosiți rezultatul verificatorului pentru a alege una:

Ce conține fișierul dvs.Cea mai bună rutăDe ce
Paragrafe simple, din Word sau dintr-o altă aplicație care folosește \parÎncărcați fișierul RTFParagrafele revin unu la unu; pierdeți doar formatarea de care nu aveați nevoie
Paragrafe simple, din TextEdit (\cocoartf)Convertiți mai întâi în DOCX sau TXT, apoi încărcați acel fișierCititorul RTF ar trimite întregul fișier ca un singur paragraf
Titluri, tabele, note de subsol sau formatare pe care trebuie să o păstrațiSalvați ca DOCX în Word sau LibreOffice, apoi încărcați fișierul DOCXRuta RTF reconstruiește un fișier simplu; DOCX trece prin fluxul de lucru pentru Word
Numere de referință lungi sau hash-uriOricare rută, apoi verificațiConfirmați că fiecare număr a revenit

Pentru a converti un fișier TextEdit pe un Mac, deschideți Terminal și rulați una dintre aceste comenzi:

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

Prima scrie notes.docx lângă original. Când am convertit astfel fișierul nostru de test TextEdit, DOCX-ul avea un paragraf separat pentru fiecare rând și păstra cuvintele aldine și cursive. Nu a păstrat tabelul, care a devenit paragrafe separate, nici linkul. Dacă aveți nevoie de acestea, deschideți fișierul în Word sau LibreOffice și salvați-l ca DOCX de acolo, apoi verificați tabelul înainte de a-l încărca. A doua comandă scrie un fișier text simplu. Folosiți-o când aveți nevoie doar de cuvinte; ghidul nostru pentru traducerea textului simplu acoperă ce trebuie verificat într-un fișier TXT.

Pentru un document Word în care tabelele, stilurile și anteturile contează, consultați ghidul nostru despre traducerea unui document Word păstrând formatarea. Întrebările frecvente BookTranslator de pe pagina traducătorului de documente oferă același sfat pentru fișierele Word vechi .doc: le traduce textul și returnează un fișier RTF și recomandă salvarea lor mai întâi ca DOCX atunci când imaginile, tabelele sau aspectul trebuie să rămână.

Pasul 3: Traduceți întregul fișier

Încărcați fișierul, alegeți limba țintă și verificați prețul înainte de a plăti. BookTranslator traduce paragrafele în ordine. Pentru un fișier lung cu nume și termeni recurenți, activați opțiunea Glosar automat înainte de a plăti, astfel încât aceștia să fie traduși la fel pe tot parcursul.

Primiți două fișiere:

  • Fișierul tradus: fiecare paragraf în limba țintă.
  • Fișierul bilingv: fiecare paragraf original urmat de traducerea sa. Acesta este fișierul mai rapid pentru verificare, deoarece puteți citi cele două alături și puteți observa un paragraf care a fost omis sau citit greșit. În fișierul bilingv pentru testul nostru TextEdit, întregul document apare o dată în engleză și apoi o dată cu marcajul, ceea ce este o altă modalitate de a vedea problema unui singur paragraf.

Ambele fișiere sunt scrise ca paragrafe simple Times New Roman de 12 puncte. Limbile țintă cu scriere de la dreapta la stânga, cum ar fi araba și ebraica, sunt marcate ca paragrafe de la dreapta la stânga. Deschideți fișierele în Word, LibreOffice sau TextEdit pentru a le citi și formata.

Pasul 4: Verifică fișierul tradus

Rulează verificatorul cu fișierul sursă și traducerea:

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

Pentru fișierul nostru în stil Word, secțiunea de comparare a afișat:

== 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

Fiecare linie este o sarcină pentru verificarea ta. Aici, numărul de paragrafe a scăzut de la șapte la șase, deoarece rândurile tabelului au devenit un singur paragraf. Pentru fișierul cu numere lungi, a afișat două linii MISSING, câte una pentru fiecare număr care a fost eliminat. Pentru fișierul TextEdit, visible_paragraphs: 8 -> 1 este semnalul să te întorci la Pasul 2.

Verificatorul numără structura. Nu îți poate spune dacă traducerea este bună. Citește fișierul bilingv, cel puțin pentru primele pagini și pentru orice pasaj cu nume, numere sau dialog.

Probleme frecvente

RTF-ul meu tradus este un singur paragraf lung. Fișierul sursă provine cel mai probabil din TextEdit sau dintr-o altă aplicație Mac. Rulează verificatorul pe original. Dacă avertizează despre întreruperi de linie cu backslash, convertește fișierul în DOCX sau TXT și traduce acela.

Unele cuvinte sunt lipite, cum ar fi „StopTime”. Acelea erau celule de tabel. Tabelele RTF își pierd limitele celulelor pe această rută. Traduce o copie DOCX a fișierului dacă tabelul contează.

O propoziție se termină cu text care nu îi aparține. Probabil este o notă de subsol. Găsește-o în original, apoi mută traducerea ei înapoi într-o notă de subsol în Word.

Un număr lipsește din traducere. Dacă avea 20 sau mai multe caractere din 0–9 și a–f, a fost eliminat înainte de traducere. Copiază-l înapoi din original. Liniile MISSING ale verificatorului le listează pe toate.

Formatarea a dispărut. Acest lucru este de așteptat pe ruta RTF: fișierul este reconstruit cu paragrafe simple. Dacă ai nevoie de formatare, traduce o copie DOCX sau aplică din nou stilurile după traducere. Comparația noastră a instrumentelor de traducere DOCX acoperă ce instrumente păstrează formatarea Word și cât de bine.

Pot obține rezultatul ca DOCX în schimb? Nu dintr-o încărcare RTF; RTF intră, RTF iese. Convertește originalul în DOCX înainte de a-l încărca, iar rezultatul va reveni ca DOCX.

Articole asociate