Jak przetłumaczyć plik RTF: co przetrwa, a co się psuje
Co dzieje się z akapitami, tabelami, przypisami, linkami i formatowaniem podczas tłumaczenia pliku RTF, dlaczego pliki z TextEdit wymagają dodatkowego kroku i darmowe narzędzie do sprawdzania.

Aby przetłumaczyć plik RTF, prześlij cały plik .rtf do tłumacza, który obsługuje RTF, a następnie sprawdź wynik. BookTranslator obsługuje RTF. Odczytuje tekst akapit po akapicie, tłumaczy go i zwraca nowy plik RTF oraz plik RTF dwujęzyczny. Wklejenie tekstu do okna czatu lub tłumacza internetowego również sprawdzi się w przypadku strony lub dwóch, ale tracisz plik i musisz go odtworzyć.
Jest jedna rzecz, o której warto wiedzieć przed przesłaniem pliku. Przetłumaczony plik zachowuje Twoje słowa i akapity, ale nie formatowanie. Pogrubienia, nagłówki, czcionki, tabele, linki i obrazy nie wracają. Właściwa droga zależy więc od tego, co znajduje się w pliku i w jakiej aplikacji został zapisany. Zwykły rękopis zapisany w Wordzie to łatwy przypadek. Plik zapisany w TextEdit na Macu wymaga najpierw jednego dodatkowego kroku, w przeciwnym razie wszystkie akapity się zlewają.
Przygotowaliśmy trzy pliki testowe i napisaliśmy darmowe narzędzie do sprawdzania, które pokazuje, co znajduje się w pliku RTF przed przesłaniem i co się zmieniło po. Przepuściliśmy pliki testowe przez lokalną kopię kodu odczytu i zapisu RTF używanego przez BookTranslator, z znacznikiem w miejscu modelu, dzięki czemu można dokładnie zobaczyć, jaki tekst każdy plik testowy wysyła do tłumaczenia i jak plik wraca.
Szybka odpowiedź: co dzieje się z każdą częścią pliku
| Część pliku | Co wróciło w naszym teście | Co zrobić |
|---|---|---|
Akapity zakończone \par (Word i większość aplikacji Windows) | Jeden przetłumaczony akapit za każdy | Nic |
| Akapity zakończone ukośnikiem wstecznym i znakiem nowej linii (TextEdit, inne aplikacje Mac) | Cały plik wysłany jako jeden akapit, bez spacji w miejscu każdego złamania | Najpierw przekonwertuj plik (patrz krok 2) |
| Pogrubienie, kursywa, nagłówki, czcionki, kolory, wyrównanie | Usunięte. Każdy akapit to 12-punktowy Times New Roman | Sformatuj ponownie w Wordzie lub przetłumacz DOCX |
| Tabele | Tekst komórek połączony bez spacji: StopTimeNorth pier7:05 | Przetłumacz DOCX |
| Przypisy | Tekst przypisu dodany na końcu akapitu; numer przypisu zniknął | Przenieś przypisy z powrotem ręcznie lub przetłumacz DOCX |
| Nagłówek strony | Staje się zwykłym akapitem w miejscu, w którym znajduje się w pliku (w naszym teście na górze) | Usuń go lub zachowaj oryginalny nagłówek |
| Linki | Tekst linku zachowany i przetłumaczony, adres internetowy usunięty | Dodaj linki ponownie |
| Obrazy | Usunięte | Zachowaj oryginalny plik dla grafiki |
Znaki diakrytyczne i znaki niełacińskie (café, 日本) | Odczytane i zapisane poprawnie | Nic |
| Dowolny ciąg 20 lub więcej znaków od 0–9 i a–f (długie numery referencyjne, skróty haszujące) | Usunięte przed tłumaczeniem | Sprawdź je po tłumaczeniu (sprawdzian robi to automatycznie) |
Reszta tego przewodnika pokazuje, skąd pochodzi każdy wiersz i co z nim zrobić.
Krok 1: Sprawdź, jaki rodzaj RTF masz
RTF to format tekstowy z kodami formatowania. Otwórz plik w edytorze tekstu lub uruchom head -c 120 yourfile.rtf w terminalu i spójrz na pierwszy wiersz.
- Jeśli zawiera
\cocoartf, plik został zapisany przez system tekstowy Apple: TextEdit lub inną aplikację na Maca, która go używa. - Jeśli zawiera
\rtf1\ansii nie zawiera\cocoartf, najprawdopodobniej pochodzi z Worda, LibreOffice, WordPada lub eksportu z aplikacji do pisania.
Różnica ma znaczenie, ponieważ oba rodzaje kończą akapit w inny sposób. Word i większość innych edytorów tekstu zapisuje kod \par na końcu każdego akapitu. System tekstowy Apple zapisuje zamiast tego pojedynczy ukośnik na końcu wiersza. Oba są prawidłowym RTF: oryginalna specyfikacja RTF Microsoftu z 1989 r. (kopia lustrzana) mówi, że ukośnik odwrotny, po którym następuje znak nowego wiersza, jest traktowany tak samo jak \par, a własny czytnik Apple'a pokazuje nasz plik testowy z TextEdit jako osobne akapity. Czytnik RTF w BookTranslator dzieli akapity tylko na \par. Sprawdziliśmy to w jego kodzie 3 listopada 2026 r. oraz w teście poniżej.
Sprawdzian powie Ci, jaki rodzaj masz, i co jeszcze znajduje się w pliku. Wymaga Pythona 3 i niczego więcej:
python3 check_rtf.py sample-word-style.rtf
Na naszym pliku testowym w stylu Worda wydrukował:
== 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.
W pliku z TextEdit pierwsze ostrzeżenie było następujące:
WARN Paragraphs end with a backslash + line break (TextEdit/Cocoa style), not \par. Tools that only split on \par will see one long paragraph.
Jeśli narzędzie sprawdzające nie wyświetli żadnych ostrzeżeń, Twoje akapity, liczby i tekst powinny zostać zachowane. Pogrubienie, nagłówki i listy nie wywołują ostrzeżeń, ale i tak są usuwane na ścieżce RTF, więc jeśli ich potrzebujesz, sprawdź krok 2.
Co zwróciły nasze pliki testowe
Przygotowaliśmy trzy małe pliki. Wszystkie z nich oraz wszystko, co z nich wróciło, znajduje się w folderze plików testowych.
- sample-word-style.rtf jest napisany ręcznie w stylu, jakiego Word używa dla RTF: podziały
\par, nagłówek strony, przypis dolny, link, tabela dwa na dwa, mały obrazek, podział strony,cafézapisane jako znak strony kodowej oraz日本zapisane jako kody Unicode. - sample-textedit.rtf został utworzony na Macu za pomocą
textutil -convert rtf, który korzysta z tego samego systemu tekstowego co TextEdit. Zawiera nagłówek, pogrubione i pochylone słowa, link, listę punktowaną, tabelę oraz wiersz z{braces}i ukośnikami wstecznymi. - sample-long-numbers.rtf zawiera 20-cyfrowy numer referencyjny zamówienia, 40-znakowy hash commita i numer telefonu.
Skopiowaliśmy funkcje odczytu i zapisu RTF z kodu backendu BookTranslatora 3 listopada 2026 r. i uruchomiliśmy je na każdym pliku. Nie użyto żadnego modelu. Każdy akapit, który zostałby wysłany do tłumaczenia, zastąpiliśmy ciągiem [ZH] plus oryginalny tekst. To pokazuje dokładnie, co otrzymałby model i jak plik jest odbudowywany, bez szumu prawdziwego tłumaczenia.
Plik w stylu Worda: sześć czystych akapitów i trzy niespodzianki
Plik wrócił jako sześć przetłumaczonych akapitów w następującej kolejności:
[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)
W większości jest to to, czego chcesz. Każdy akapit został wysłany raz, po kolei, a café i 日本 przetrwały podróż od kodów RTF do tekstu i z powrotem. Trzy niespodzianki:
- Nagłówek strony stał się pierwszym akapitem. „Harbor Notes - Draft 2” był nagłówkiem drukowanym na górze każdej strony. W przetłumaczonym pliku jest tekstem głównym.
- Przypis dolny przeniósł się do zdania. „Timetable from the 1998 edition.” był przypisem dolnym do słowa „opened”. Teraz następuje po zdaniu, jakby był jego częścią, a numer przypisu zniknął. Model tłumaczący ten akapit widzi jeden ciągły tekst, a Ty musisz ręcznie odnaleźć przypis i przenieść go z powrotem.
- Komórki tabeli zlały się. Cztery komórki „Stop”, „Time”, „North pier” i „7:05” stały się jednym ciągiem
StopTimeNorth pier7:05. Model może podzielić go w niewłaściwym miejscu lub przetłumaczyć „StopTime” jako jedno słowo.
Przetłumaczony plik nie ma nagłówka, przypisu dolnego, tabeli, adresu linku, obrazu ani pogrubienia. Tryb porównania narzędzia sprawdzającego z kroku 4 wylicza to wszystko.
Plik TextEdit: jeden akapit
Plik TextEdit ma osiem widocznych akapitów. Wszystkie zostały wysłane do tłumaczenia jako jeden akapit:
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.
Nie ma spacji w miejscach, gdzie kończył się każdy akapit: „HarborThe”, „opened.Read”. Przetłumaczony plik też jest jednym akapitem. Nasz plik testowy jest krótki. W prawdziwej książce zapisanej przez TextEdit cały plik staje się jednym akapitem. Przed tłumaczeniem BookTranslator dzieli bardzo długie akapity na fragmenty po około 6000 znaków (około 2000 dla chińskiego, japońskiego lub koreańskiego), na końcach zdań, gdzie tylko je znajdzie. Te cięcia nadal wypadają na końcach zdań wewnątrz akapitów, ale nigdy w miejscach brakujących podziałów akapitów, ponieważ „opened.Read” nie wygląda na koniec zdania. Gdy każdy akapit to pojedyncze zdanie, jak w liniach dialogu lub elementach listy, cięcia mogą wypaść na przecinkach lub spacjach. Model nigdy nie widzi, gdzie były akapity, a Ty otrzymujesz jeden mur tekstu.
Nawiasy klamrowe i ukośniki wsteczne w ostatnim zdaniu przetrwały. Zostały poprawnie zapisane z ukośnikami ucieczki na wyjściu, więc plik nadal się otwiera.
Długie liczby: usunięte przed tłumaczeniem
Trzeci plik wrócił w takiej postaci:
[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.
Numer referencyjny zamówienia i hash commita zniknęły, a w miejscu każdego z nich jest podwójna spacja. Czytnik usuwa każdy ciąg 20 lub więcej znaków składający się wyłącznie z cyfr 0–9 i liter a–f, ponieważ tak wyglądają osadzone dane obrazu w RTF. Długi numer w Twoim tekście wygląda dla niego tak samo. Numer telefonu przetrwał, ponieważ jego grupy cyfr są krótkie.
Ma to znaczenie głównie w przypadku umów, faktur, notatek technicznych i dokumentacji z długimi numerami referencyjnymi. Narzędzie sprawdzające wylicza każdy taki ciąg w pliku źródłowym i informuje, jeśli jakiegoś brakuje po tłumaczeniu.
Krok 2: Wybierz właściwą ścieżkę dla swojego pliku
Na podstawie danych wyjściowych narzędzia sprawdzającego wybierz jedną z opcji:
| Co zawiera Twój plik | Najlepsza metoda | Dlaczego |
|---|---|---|
Zwykłe akapity z Worda lub innej aplikacji obsługującej \par | Prześlij plik RTF | Akapity wracają jeden do jednego; tracisz tylko formatowanie, którego nie potrzebowałeś |
Zwykłe akapity z TextEdit (\cocoartf) | Najpierw przekonwertuj na DOCX lub TXT, a potem prześlij ten plik | Czytnik RTF wysłałby cały plik jako jeden akapit |
| Nagłówki, tabele, przypisy lub formatowanie, które musisz zachować | Zapisz jako DOCX w Wordzie lub LibreOffice, a potem prześlij plik DOCX | Ścieżka RTF odtwarza zwykły plik; DOCX przechodzi przez proces Worda |
| Długie numery referencyjne lub skróty haszowe | Dowolna metoda, a potem sprawdź | Upewnij się, że każda liczba wróciła |
Aby przekonwertować plik TextEdit na Macu, otwórz Terminal i uruchom jedno z tych poleceń:
textutil -convert docx notes.rtf
textutil -convert txt notes.rtf
Pierwsze zapisuje notes.docx obok oryginału. Gdy przekonwertowaliśmy w ten sposób nasz plik testowy z TextEdit, DOCX miał osobny akapit dla każdego wiersza i zachował pogrubione oraz pochylone słowa. Nie zachował tabeli, która zamieniła się w osobne akapity, ani linku. Jeśli ich potrzebujesz, otwórz plik w Wordzie lub LibreOffice i zapisz go stamtąd jako DOCX, a następnie sprawdź tabelę przed przesłaniem. Drugie polecenie zapisuje plik tekstowy. Użyj go, gdy potrzebujesz tylko słów; nasz przewodnik po tłumaczeniu plików tekstowych opisuje, co sprawdzić w pliku TXT.
W przypadku dokumentu Worda, w którym znaczenie mają tabele, style i nagłówki, zobacz nasz przewodnik po tłumaczeniu dokumentu Worda z zachowaniem formatowania. FAQ BookTranslatora na jego stronie tłumaczenia dokumentów podaje tę samą radę dla starych plików Worda .doc: tłumaczy ich tekst i zwraca plik RTF, a zaleca najpierw zapisać je jako DOCX, gdy obrazy, tabele lub układ mają pozostać.
Krok 3: Przetłumacz cały plik
Prześlij plik, wybierz język docelowy i sprawdź cenę przed zapłatą. BookTranslator tłumaczy akapity po kolei. W przypadku długiego pliku z powtarzającymi się nazwami i terminami włącz opcję automatycznego glosariusza przed zapłatą, aby były tłumaczone w ten sam sposób w całym dokumencie.
Otrzymujesz dwa pliki:
- Plik przetłumaczony: każdy akapit w języku docelowym.
- Plik dwujęzyczny: każdy oryginalny akapit, po którym następuje jego tłumaczenie. To szybszy plik do przeglądu, ponieważ możesz czytać oba teksty obok siebie i zauważyć akapit, który został pominięty lub błędnie odczytany. W pliku dwujęzycznym dla naszego testu z TextEdit cały dokument pojawia się raz po angielsku, a potem raz z oznaczeniem, co jest kolejnym sposobem na zobaczenie problemu z jednym akapitem.
Oba pliki są zapisane jako zwykłe akapity czcionką Times New Roman 12 punktów. Języki docelowe pisane od prawej do lewej, takie jak arabski i hebrajski, są oznaczone jako akapity od prawej do lewej. Otwórz pliki w Wordzie, LibreOffice lub TextEdit, aby je przeczytać i sformatować.
Krok 4: Sprawdź przetłumaczony plik
Uruchom narzędzie sprawdzające z plikiem źródłowym i tłumaczeniem:
python3 check_rtf.py sample-word-style.rtf sample-word-style-translated.rtf
Dla naszego pliku w stylu Worda sekcja porównania wyświetliła:
== 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
Każda linia to zadanie do przeglądu. Tutaj liczba akapitów spadła z siedmiu do sześciu, ponieważ wiersze tabeli stały się jednym akapitem. Dla pliku z długimi liczbami wyświetliły się dwie linie MISSING, po jednej dla każdej usuniętej liczby. Dla pliku z TextEdit visible_paragraphs: 8 -> 1 to sygnał, aby wrócić do kroku 2.
Narzędzie sprawdzające liczy strukturę. Nie powie Ci, czy tłumaczenie jest dobre. Przeczytaj plik dwujęzyczny, przynajmniej początkowe strony i wszelkie fragmenty z nazwami, liczbami lub dialogami.
Częste problemy
Moje przetłumaczone RTF to jeden długi akapit. Twój plik źródłowy najprawdopodobniej pochodzi z TextEdit lub innej aplikacji na Maca. Uruchom narzędzie sprawdzające na oryginale. Jeśli ostrzega o podziałach wierszy z ukośnikiem wstecznym, przekonwertuj plik do DOCX lub TXT i przetłumacz ten format.
Niektóre słowa są sklejone, np. „StopTime”. To były komórki tabeli. Tabele RTF tracą granice komórek na tej ścieżce. Przetłumacz kopię DOCX pliku, jeśli tabela ma znaczenie.
Zdanie kończy się tekstem, który do niego nie należy. To prawdopodobnie przypis dolny. Znajdź go w oryginale, a następnie przenieś jego tłumaczenie z powrotem do przypisu w Wordzie.
W tłumaczeniu brakuje liczby. Jeśli miała 20 lub więcej znaków z zakresu 0–9 i a–f, została usunięta przed tłumaczeniem. Skopiuj ją z powrotem z oryginału. Linie MISSING narzędzia sprawdzającego wymieniają każdą z nich.
Formatowanie zniknęło. To oczekiwane na ścieżce RTF: plik jest odtwarzany z prostymi akapitami. Jeśli potrzebujesz formatowania, przetłumacz kopię DOCX lub ponownie zastosuj style po tłumaczeniu. Nasze porównanie narzędzi do tłumaczenia DOCX omawia, które narzędzia zachowują formatowanie Worda i jak dobrze.
Czy mogę otrzymać wynik jako DOCX? Nie przy przesyłaniu RTF; RTF wchodzi, RTF wychodzi. Przekonwertuj oryginał do DOCX przed przesłaniem, a wynik wróci jako DOCX.
Powiązane wpisy





