Een RTF-bestand vertalen: wat blijft behouden en wat gaat verloren
Wat gebeurt er met alinea's, tabellen, voetnoten, links en opmaak wanneer een RTF-bestand wordt vertaald, waarom TextEdit-bestanden een extra stap nodig hebben, en een gratis controleprogramma.

Om een RTF-bestand te vertalen, upload je het volledige .rtf-bestand naar een vertaler die RTF leest en controleer je daarna het resultaat. BookTranslator accepteert RTF. Het leest de tekst alinea voor alinea, vertaalt die en levert een nieuw RTF-bestand en een tweetalig RTF-bestand op. De tekst plakken in een chatvenster of een online vertaler werkt ook voor een pagina of twee, maar dan raak je het bestand kwijt en moet je het opnieuw opbouwen.
Er is één ding dat je moet weten voordat je uploadt. Het vertaalde bestand behoudt je woorden en je alinea's, maar niet je opmaak. Vet, koppen, lettertypen, tabellen, links en afbeeldingen komen niet terug. De juiste aanpak hangt dus af van wat er in je bestand staat en welke app het heeft opgeslagen. Een eenvoudig manuscript dat vanuit Word is opgeslagen, is het gemakkelijkste geval. Een bestand dat door TextEdit op een Mac is opgeslagen, vereist eerst een extra stap, anders lopen alle alinea's aan elkaar vast.
We hebben drie testbestanden gemaakt en een gratis controleprogramma geschreven dat laat zien wat er in een RTF-bestand staat voordat je het uploadt en wat er daarna is veranderd. We hebben de testbestanden door een lokale kopie van de RTF-lees- en schrijfvcode van BookTranslator gehaald, met een markeerder in plaats van een model, zodat je precies kunt zien welke tekst elk testbestand ter vertaling aanbiedt en hoe het bestand terugkomt.
Snel antwoord: wat gebeurt er met elk onderdeel van het bestand
| Onderdeel van het bestand | Wat er in onze test terugkwam | Wat je moet doen |
|---|---|---|
Alinea's eindigend met \par (Word en de meeste Windows-apps) | Eén vertaalde alinea voor elk | Niets |
| Alinea's eindigend met een backslash en een regeleinde (TextEdit, andere Mac-apps) | Het hele bestand als één alinea verzonden, zonder spatie waar elk regeleinde stond | Converteer het bestand eerst (zie stap 2) |
| Vet, cursief, koppen, lettertypen, kleuren, uitlijning | Verwijderd. Elke alinea is 12-punts Times New Roman | Formatteer opnieuw in Word, of vertaal een DOCX |
| Tabellen | Celtekst samengevoegd zonder spatie: StopTimeNorth pier7:05 | Vertaal een DOCX |
| Voetnoten | Voetnoottekst toegevoegd aan het einde van de bijbehorende alinea; het voetnootnummer is verdwenen | Verplaats voetnoten handmatig terug, of vertaal een DOCX |
| Paginakop | Wordt een gewone alinea op de plek waar hij in het bestand staat (in onze test bovenaan) | Verwijder hem, of behoud de oorspronkelijke kop |
| Links | Linktekst behouden en vertaald, het webadres verwijderd | Voeg de links opnieuw toe |
| Afbeeldingen | Verwijderd | Bewaar het originele bestand voor de illustraties |
Letters met accenten en niet-Latijnse tekens (café, 日本) | Correct gelezen en geschreven | Niets |
| Elke reeks van 20 of meer tekens uit 0–9 en a–f (lange referentienummers, hashes) | Verwijderd vóór vertaling | Controleer ze na de vertaling (de checker doet dit) |
De rest van deze gids laat zien waar elke rij vandaan komt en wat je eraan kunt doen.
Stap 1: Controleer welk soort RTF je hebt
RTF is een tekstformaat met opmaakcodes erin. Open het bestand in een platte-teksteditor, of voer head -c 120 yourfile.rtf uit in een terminal, en kijk naar de eerste regel.
- Als er
\cocoartfin staat, is het bestand opgeslagen door Apple's tekstsysteem: TextEdit, of een andere Mac-app die dat gebruikt. - Als er
\rtf1\ansiin staat en geen\cocoartf, komt het hoogstwaarschijnlijk van Word, LibreOffice, WordPad of de export van een schrijfapp.
Het verschil is belangrijk omdat de twee soorten een alinea op verschillende manieren beëindigen. Word en de meeste andere tekstverwerkers schrijven de code \par aan het einde van elke alinea. Apple's tekstsysteem schrijft in plaats daarvan een enkele backslash aan het einde van de regel. Beide zijn geldige RTF: Microsoft's oorspronkelijke RTF-specificatie uit 1989 (mirrored copy) zegt dat een backslash gevolgd door een regeleinde hetzelfde wordt behandeld als \par, en Apple's eigen lezer toont ons TextEdit-testbestand als afzonderlijke alinea's. De RTF-lezer van BookTranslator splitst alinea's alleen op \par. We hebben dit gecontroleerd in de code op 3 november 2026 en in de test hieronder.
De checker vertelt je welk soort je hebt, en wat er nog meer in het bestand staat. Hij heeft Python 3 nodig en niets anders:
python3 check_rtf.py sample-word-style.rtf
Op ons testbestand in Word-stijl drukte hij af:
== 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.
Op het TextEdit-bestand was de eerste waarschuwing deze:
WARN Paragraphs end with a backslash + line break (TextEdit/Cocoa style), not \par. Tools that only split on \par will see one long paragraph.
Als de checker geen waarschuwingen geeft, zouden je alinea's, getallen en tekst er goed door moeten komen. Vet, koppen en lijsten veroorzaken geen waarschuwing, maar ze worden op de RTF-route nog steeds verwijderd, dus controleer stap 2 als je ze nodig hebt.
Wat er terugkwam uit onze testbestanden
We hebben drie kleine bestanden gemaakt. Alle drie, en alles wat er terugkwam, staan in de map met testbestanden.
- sample-word-style.rtf is met de hand geschreven in de stijl die Word voor RTF gebruikt:
\par-regeleinden, een paginakop, een voetnoot, een link, een tabel van twee bij twee, een kleine afbeelding, een pagina-einde,cafégeschreven als een codepaginateken, en日本geschreven als Unicode-codes. - sample-textedit.rtf is gemaakt op een Mac met
textutil -convert rtf, dat hetzelfde tekstsysteem gebruikt als TextEdit. Het bevat een kop, vette en cursieve woorden, een link, een opsomming, een tabel en een regel met{braces}en backslashes erin. - sample-long-numbers.rtf bevat een orderreferentie van 20 cijfers, een commit-hash van 40 tekens en een telefoonnummer.
We hebben de RTF-lees- en schrijffuncties op 3 november 2026 uit de backendcode van BookTranslator gekopieerd en ze op elk bestand uitgevoerd. Er is geen model gebruikt. Elke alinea die voor vertaling zou worden verstuurd, werd vervangen door [ZH] plus de originele tekst. Dat laat precies zien wat een model zou ontvangen en hoe het bestand opnieuw wordt opgebouwd, zonder de ruis van een echte vertaling.
Het Word-stijlbestand: zes schone alinea's, met drie verrassingen
Het bestand kwam terug als zes vertaalde alinea's, in deze volgorde:
[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)
Het meeste hiervan is wat je wilt. Elke alinea werd één keer verstuurd, in volgorde, en café en 日本 overleefden de reis van RTF-codes naar tekst en terug. De drie verrassingen:
- De paginakop werd de eerste alinea. "Harbor Notes - Draft 2" was een kop die bovenaan elke pagina werd afgedrukt. In het vertaalde bestand is het lopende tekst.
- De voetnoot verschoof de zin in. "Timetable from the 1998 edition." was een voetnoot bij "opened". Nu volgt die de zin alsof het er deel van uitmaakt, en het voetnootnummer is verdwenen. Een model dat die alinea vertaalt, ziet één doorlopende tekst, en jij moet de voetnoot met de hand zien terug te vinden en te verplaatsen.
- De tabelcellen liepen in elkaar over. De vier cellen "Stop", "Time", "North pier" en "7:05" werden de enkele tekenreeks
StopTimeNorth pier7:05. Een model kan die op de verkeerde plek splitsen, of "StopTime" als één woord vertalen.
Het vertaalde bestand heeft geen kop, geen voetnoot, geen tabel, geen linkadres, geen afbeelding en geen vet. De vergelijkingsmodus van de checker in stap 4 somt dat allemaal op.
Het TextEdit-bestand: één alinea
Het TextEdit-bestand heeft acht zichtbare alinea's. Allemaal werden ze als één alinea voor vertaling verstuurd:
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.
Er is geen spatie waar elke alinea eindigde: "HarborThe", "opened.Read". Het vertaalde bestand is ook één alinea. Ons testbestand is kort. In een echt boek dat door TextEdit is opgeslagen, wordt het hele bestand één alinea. Vóór de vertaling knipt BookTranslator zeer lange alinea's in stukken van ongeveer 6.000 tekens (ongeveer 2.000 voor Chinees, Japans of Koreaans), op zinseinden waar het die kan vinden. Die knipsels vallen nog steeds op zinseinden binnen alinea's, maar nooit op de ontbrekende alinea-einden, omdat "opened.Read" er niet als een zinseinde uitziet. Waar elke alinea één enkele zin is, zoals dialoogregels of lijstitems, kunnen knipsels op komma's of spaties vallen. Het model ziet nooit waar de alinea's waren, en je krijgt één muur van tekst terug.
De accolades en backslashes in de laatste zin overleefden wel. Ze werden correct geëscaped bij het wegschrijven, dus het bestand opent nog steeds.
De lange getallen: verwijderd vóór de vertaling
Het derde bestand kwam er zo uit:
[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.
De orderreferentie en de commit-hash zijn verdwenen, met een dubbele spatie waar elk ervan stond. De lezer verwijdert elke reeks van 20 of meer tekens die alleen uit de cijfers 0–9 en de letters a–f bestaat, omdat ingebedde afbeeldingsgegevens er in RTF zo uitzien. Een lang getal in je tekst ziet er voor hem hetzelfde uit. Het telefoonnummer overleefde omdat de cijfergroepen kort zijn.
Dit is vooral van belang voor contracten, facturen, technische notities en records met lange referentienummers. De checker somt elke zulke tekenreeks in je bronbestand op en vertelt je of er een ontbreekt na de vertaling.
Stap 2: Kies de juiste route voor je bestand
Gebruik de uitvoer van de checker om er een te kiezen:
| Wat je bestand bevat | Beste aanpak | Waarom |
|---|---|---|
Gewone alinea's, uit Word of een andere app die \par gebruikt | Upload het RTF-bestand | Alinea's komen één op één terug; je verliest alleen opmaak die je niet nodig had |
Gewone alinea's, uit TextEdit (\cocoartf) | Converteer eerst naar DOCX of TXT en upload dat bestand | De RTF-lezer zou het hele bestand als één alinea doorsturen |
| Koppen, tabellen, voetnoten of opmaak die je wilt behouden | Sla op als DOCX in Word of LibreOffice en upload vervolgens het DOCX-bestand | De RTF-route bouwt een plat bestand opnieuw op; DOCX gaat via de Word-workflow |
| Lange referentienummers of hashes | Beide routes, daarna controleren | Controleer of elk nummer terug is gekomen |
Om een TextEdit-bestand op een Mac te converteren, open je Terminal en voer je een van deze opdrachten uit:
textutil -convert docx notes.rtf
textutil -convert txt notes.rtf
De eerste schrijft notes.docx naast het origineel. Toen we ons TextEdit-testbestand op deze manier converteerden, had de DOCX een aparte alinea voor elke regel en bleven de vetgedrukte en cursieve woorden behouden. De tabel, die aparte alinea's werd, en de link bleven niet behouden. Als je die nodig hebt, open je het bestand in Word of LibreOffice en sla je het daar op als DOCX, en controleer je de tabel voordat je uploadt. De tweede opdracht schrijft een plat tekstbestand. Gebruik die wanneer je alleen de woorden nodig hebt; onze gids voor het vertalen van platte tekst behandelt wat je in een TXT-bestand moet controleren.
Voor een Word-document waarbij tabellen, stijlen en kopteksten belangrijk zijn, zie onze gids over een Word-document vertalen met behoud van de opmaak. De FAQ van BookTranslator op de pagina voor documentvertaling geeft hetzelfde advies voor oude Word-.doc-bestanden: het vertaalt de tekst en levert een RTF-bestand op, en raadt aan ze eerst als DOCX op te slaan wanneer de afbeeldingen, tabellen of lay-out behouden moeten blijven.
Stap 3: Het hele bestand vertalen
Upload het bestand, kies de doeltaal en controleer de prijs voordat je betaalt. BookTranslator vertaalt de alinea's in volgorde. Voor een lang bestand met terugkerende namen en termen schakel je de optie Auto-glossarium in voordat je betaalt, zodat ze door het hele document op dezelfde manier worden vertaald.
Je krijgt twee bestanden:
- Het vertaalde bestand: elke alinea in de doeltaal.
- Het tweetalige bestand: elke originele alinea gevolgd door de vertaling. Dit is het snellere bestand om te controleren, omdat je de twee naast elkaar kunt lezen en een alinea die is overgeslagen of verkeerd gelezen, kunt opsporen. In het tweetalige bestand voor onze TextEdit-test verschijnt het hele document één keer in het Engels en daarna één keer met de markering, wat een andere manier is om het probleem met de ene alinea te zien.
Beide bestanden worden geschreven als gewone alinea's in 12-punts Times New Roman. Doeltalen van rechts naar links, zoals Arabisch en Hebreeuws, worden gemarkeerd als alinea's van rechts naar links. Open de bestanden in Word, LibreOffice of TextEdit om ze te lezen en op te maken.
Stap 4: Controleer het vertaalde bestand
Voer de checker uit met het bronbestand en de vertaling:
python3 check_rtf.py sample-word-style.rtf sample-word-style-translated.rtf
Voor ons Word-achtige bestand drukte het vergelijkingsgedeelte af:
== 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
Elke regel is een taak voor jouw beoordeling. Hier ging het aantal alinea's van zeven naar zes omdat de tabelrijen één alinea werden. Voor het bestand met lange getallen werden twee MISSING-regels afgedrukt, één voor elk verwijderd getal. Voor het TextEdit-bestand is visible_paragraphs: 8 -> 1 het teken om terug te gaan naar Stap 2.
De checker telt de structuur. Hij kan je niet vertellen of de vertaling goed is. Lees het tweetalige bestand, in ieder geval de eerste pagina's en elk fragment met namen, getallen of dialoog.
Veelvoorkomende problemen
Mijn vertaalde RTF is één lange alinea. Je bronbestand komt hoogstwaarschijnlijk uit TextEdit of een andere Mac-app. Voer de checker uit op het origineel. Als er een waarschuwing komt over regeleinden met backslashes, converteer het bestand dan naar DOCX of TXT en vertaal dat in plaats daarvan.
Sommige woorden zitten aan elkaar vast, zoals "StopTime". Dat waren tabelcellen. RTF-tabellen verliezen op deze route hun celgrenzen. Vertaal een DOCX-kopie van het bestand als de tabel belangrijk is.
Een zin eindigt met tekst die er niet bij hoort. Dat is waarschijnlijk een voetnoot. Zoek die op in het origineel en zet de vertaling ervan terug in een voetnoot in Word.
Een getal ontbreekt in de vertaling. Als het 20 of meer tekens uit 0–9 en a–f waren, is het vóór de vertaling verwijderd. Kopieer het terug uit het origineel. De MISSING-regels van de checker vermelden ze allemaal.
De opmaak is verdwenen. Dat is te verwachten op de RTF-route: het bestand wordt opnieuw opgebouwd met platte alinea's. Als je de opmaak nodig hebt, vertaal dan een DOCX-kopie, of pas de stijlen na de vertaling opnieuw toe. Onze vergelijking van DOCX-vertaaltools laat zien welke tools Word-opmaak behouden en hoe goed.
Kan ik het resultaat in plaats daarvan als DOCX krijgen? Niet bij een RTF-upload; RTF erin, RTF eruit. Converteer het origineel naar DOCX voordat je uploadt, en het resultaat komt terug als DOCX.
Gerelateerde berichten





