BookTranslator
BookTranslator

RTF 파일 번역 방법: 유지되는 것과 깨지는 것

RTF 파일을 번역할 때 단락, 표, 각주, 링크, 서식이 어떻게 되는지, TextEdit 파일에 추가 단계가 필요한 이유, 그리고 무료 검사 도구를 알아보세요.

BookTranslator

BookTranslator Team

24분 읽기

RTF 파일을 번역하려면 .rtf 파일 전체를 RTF를 읽을 수 있는 번역기에 업로드한 다음 결과를 확인하세요. BookTranslator는 RTF를 지원합니다. 텍스트를 한 단락씩 읽어 번역하고, 새로운 RTF 파일과 이중 언어 RTF 파일을 제공합니다. 텍스트를 채팅 창이나 웹 번역기에 붙여넣는 방법도 한두 페이지 분량이라면 가능하지만, 파일을 잃어버리고 다시 만들어야 합니다.

업로드하기 전에 알아야 할 점이 하나 있습니다. 번역된 파일은 단어와 단락은 유지하지만 서식은 유지하지 않습니다. 굵게, 제목, 글꼴, 표, 링크, 이미지는 돌아오지 않습니다. 따라서 올바른 방법은 파일 내용과 어떤 앱에서 저장했는지에 따라 달라집니다. Word에서 저장한 일반 원고는 쉬운 경우입니다. Mac의 TextEdit에서 저장한 파일은 먼저 추가 단계를 거쳐야 하며, 그렇지 않으면 모든 단락이 붙어버립니다.

세 가지 테스트 파일을 만들고, 업로드 전에 RTF 파일에 무엇이 들어 있는지, 업로드 후 무엇이 바뀌었는지 보여주는 무료 검사 도구를 작성했습니다. BookTranslator가 사용하는 RTF 읽기 및 쓰기 코드의 로컬 복사본에 모델 대신 마커를 넣어 테스트 파일을 실행했으므로, 각 테스트 파일이 번역을 위해 어떤 텍스트를 보내고 파일이 어떻게 돌아오는지 정확히 확인할 수 있습니다.

빠른 답변: 파일의 각 부분은 어떻게 되는가

파일의 부분테스트에서 돌아온 결과해야 할 일
\par로 끝나는 단락 (Word 및 대부분의 Windows 앱)각 단락마다 번역된 단락 하나없음
백슬래시와 줄바꿈으로 끝나는 단락 (TextEdit, 기타 Mac 앱)파일 전체가 하나의 단락으로 전송되며, 각 줄바꿈 위치에 공백이 없음먼저 파일을 변환하세요 (2단계 참조)
굵게, 기울임꼴, 제목, 글꼴, 색상, 정렬제거됨. 모든 단락이 12포인트 Times New RomanWord에서 다시 서식을 지정하거나, DOCX를 대신 번역하세요
표셀 텍스트가 공백 없이 결합됨: StopTimeNorth pier7:05DOCX를 대신 번역하세요
각주각주 텍스트가 해당 단락 끝에 추가됨; 각주 번호는 사라짐각주를 수동으로 되돌리거나, DOCX를 번역하세요
페이지 머리글파일에서 위치한 곳(테스트에서는 맨 위)에서 일반 문단이 됩니다삭제하거나 원본 머리글을 유지하세요
링크링크 텍스트는 유지 및 번역되고, 웹 주소는 제거됩니다링크를 다시 추가하세요
이미지제거됨삽화를 위해 원본 파일을 보관하세요
악센트 문자 및 비라틴 문자(café, 日本)올바르게 읽고 씁니다없음
0–9 및 a–f에서 20자 이상 연속된 문자열(긴 참조 번호, 해시)번역 전에 삭제됨번역 후 확인하세요(검사기가 이를 수행합니다)

이 가이드의 나머지 부분에서는 각 행의 출처와 대처 방법을 설명합니다.

1단계: 어떤 종류의 RTF인지 확인하기

RTF는 서식 코드가 포함된 텍스트 형식입니다. 일반 텍스트 편집기에서 파일을 열거나 터미널에서 head -c 120 yourfile.rtf를 실행하여 첫 줄을 확인하세요.

  • 파일에 \cocoartf가 있으면 Apple의 텍스트 시스템(TextEdit 또는 이를 사용하는 다른 Mac 앱)에서 저장한 파일입니다.
  • \rtf1\ansi가 있고 \cocoartf가 없으면 Word, LibreOffice, WordPad 또는 글쓰기 앱의 내보내기에서 생성된 파일일 가능성이 높습니다.

이 차이가 중요한 이유는 두 종류가 문단을 끝내는 방식이 다르기 때문입니다. Word와 대부분의 다른 워드 프로세서는 각 문단 끝에 \par 코드를 씁니다. Apple의 텍스트 시스템은 대신 줄 끝에 단일 백슬래시를 씁니다. 둘 다 유효한 RTF입니다. Microsoft의 원래 1989년 RTF 사양(미러 사본)은 백슬래시 뒤에 줄 바꿈이 오는 것을 \par와 동일하게 처리한다고 명시하며, Apple 자체 리더는 우리의 TextEdit 테스트 파일을 별도 문단으로 표시합니다. BookTranslator의 RTF 리더는 \par에서만 문단을 나눕니다. 우리는 2026년 11월 3일 코드와 아래 테스트에서 이를 확인했습니다.

검사기는 어떤 종류인지와 파일에 다른 내용이 무엇인지 알려줍니다. 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 줄바꿈, 페이지 머리글, 각주, 링크, 2x2 표, 작은 이미지, 페이지 나누기, 코드 페이지 문자로 표기된 café, 유니코드 코드로 표기된 日本이 포함되어 있습니다.
  • sample-textedit.rtf 는 Mac에서 textutil -convert rtf로 만들었으며, TextEdit과 동일한 텍스트 시스템을 사용합니다. 제목, 굵게 및 기울임꼴 단어, 링크, 글머리 기호 목록, 표, 그리고 {braces}와 역슬래시가 포함된 줄이 있습니다.
  • sample-long-numbers.rtf 에는 20자리 주문 참조 번호, 40자 커밋 해시, 전화번호가 있습니다.

2026년 11월 3일 BookTranslator 백엔드 코드에서 RTF 읽기 및 쓰기 함수를 복사하여 각 파일에 실행했습니다. 모델은 사용하지 않았습니다. 번역을 위해 전송될 모든 문단은 [ZH] 와 원문 텍스트로 대체했습니다. 이는 실제 번역의 잡음 없이 모델이 정확히 무엇을 받고 파일이 어떻게 재구성되는지 보여줍니다.

Word 스타일 파일: 깔끔한 문단 6개, 세 가지 예상 밖의 결과

파일은 다음 순서로 번역된 문단 6개로 돌아왔습니다:

[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 코드에서 텍스트로, 다시 텍스트에서 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 파일에는 눈에 보이는 문단이 8개 있습니다. 모두 하나의 문단으로 번역을 위해 전송되었습니다:

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는 매우 긴 문단을 약 6,000자(중국어, 일본어, 한국어의 경우 약 2,000자) 조각으로 나누며, 가능한 경우 문장 끝에서 자릅니다. 이러한 분할은 여전히 문단 내부의 문장 끝에서 이루어지지만, 사라진 문단 구분에서는 결코 이루어지지 않습니다. "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.

주문 참조 번호와 커밋 해시가 사라졌고, 각각 있던 자리에는 이중 공백이 남았습니다. 리더는 숫자 0–9와 문자 a–f로만 구성된 20자 이상의 연속 문자열을 제거합니다. RTF에서 내장 이미지 데이터가 그렇게 보이기 때문입니다. 텍스트에 있는 긴 숫자도 리더에게는 똑같이 보입니다. 전화번호는 숫자 그룹이 짧아서 살아남았습니다.

이는 주로 계약서, 송장, 기술 노트, 긴 참조 번호가 있는 기록에서 중요합니다. 검사기는 원본 파일에 있는 모든 그러한 문자열을 나열하고, 번역 후 누락된 것이 있으면 알려줍니다.

2단계: 파일에 맞는 올바른 경로 선택

검사기 출력을 사용하여 하나를 선택하세요:

파일에 포함된 내용최적 경로이유
Word 또는 다른 \par 앱에서 만든 일반 단락RTF 업로드단락이 하나씩 그대로 돌아오며, 필요 없는 서식만 손실됩니다
TextEdit(\cocoartf)에서 만든 일반 단락먼저 DOCX 또는 TXT로 변환한 후 업로드RTF 리더가 전체 파일을 하나의 단락으로 처리합니다
유지해야 할 제목, 표, 각주 또는 서식Word 또는 LibreOffice에서 DOCX로 저장한 후 DOCX 업로드RTF 경로는 일반 파일로 재구성되지만, DOCX는 Word 워크플로를 거칩니다
긴 참조 번호 또는 해시어느 경로든 선택 후 확인모든 숫자가 반환되었는지 확인하세요

Mac에서 TextEdit 파일을 변환하려면 터미널을 열고 다음 중 하나를 실행하세요:

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

첫 번째 명령은 원본 옆에 notes.docx를 생성합니다. 이 방법으로 TextEdit 테스트 파일을 변환했을 때, DOCX에는 각 줄이 별도 단락으로 포함되었고 굵게 및 기울임꼴 단어가 유지되었습니다. 표는 별도 단락으로 바뀌어 유지되지 않았고 링크도 유지되지 않았습니다. 이러한 요소가 필요하다면 Word 또는 LibreOffice에서 파일을 열어 DOCX로 저장한 후 업로드 전에 표를 확인하세요. 두 번째 명령은 일반 텍스트 파일을 생성합니다. 텍스트만 필요할 때 사용하세요. 일반 텍스트 번역 가이드에서 TXT 파일에서 확인해야 할 사항을 다룹니다.

표, 스타일, 머리글이 중요한 Word 문서의 경우 서식을 유지하면서 Word 문서 번역하기 가이드를 참조하세요. BookTranslator의 문서 번역기 페이지 FAQ에서는 구형 Word .doc 파일에 대해 동일한 조언을 제공합니다: 텍스트를 번역하여 RTF 파일로 반환하며, 이미지, 표 또는 레이아웃을 유지해야 할 경우 먼저 DOCX로 저장할 것을 권장합니다.

3단계: 전체 파일 번역

파일 업로드 후 대상 언어를 선택하고 결제 전에 가격을 확인하세요. BookTranslator는 단락을 순서대로 번역합니다. 반복되는 이름과 용어가 있는 긴 파일의 경우 결제 전에 자동 용어집 옵션을 켜면 전체에서 일관되게 번역됩니다.

두 개의 파일이 제공됩니다:

  • 번역된 파일: 대상 언어로 된 각 단락.
  • 이중 언어 파일: 각 원본 단락 뒤에 번역이 이어집니다. 두 파일을 나란히 읽으며 건너뛰거나 잘못 읽은 단락을 발견할 수 있어 검토에 더 빠릅니다. TextEdit 테스트의 이중 언어 파일에서는 전체 문서가 영어로 한 번 나타난 후 마커와 함께 다시 한 번 나타나는데, 이는 단일 단락 문제를 확인하는 또 다른 방법입니다.

두 파일 모두 일반 12포인트 Times New Roman 단락으로 작성됩니다. 아랍어, 히브리어와 같은 오른쪽에서 왼쪽으로 쓰는 대상 언어는 오른쪽에서 왼쪽 단락으로 표시됩니다. 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

각 줄은 검토해야 할 작업입니다. 여기서는 표 행이 하나의 단락이 되어 단락 수가 7개에서 6개로 줄었습니다. 긴 숫자 파일의 경우 삭제된 각 숫자에 대해 두 개의 MISSING 줄이 출력되었습니다. TextEdit 파일의 경우 visible_paragraphs: 8 -> 1은 2단계로 돌아가라는 신호입니다.

검사기는 구조를 계산합니다. 번역이 좋은지 알려줄 수는 없습니다. 적어도 처음 몇 페이지와 이름, 숫자, 대화가 포함된 구절은 이중 언어 파일을 읽어보세요.

일반적인 문제

번역된 RTF가 하나의 긴 단락입니다. 원본 파일이 TextEdit 또는 다른 Mac 앱에서 생성되었을 가능성이 높습니다. 원본에서 검사기를 실행하세요. 백슬래시 줄 바꿈에 대한 경고가 표시되면 파일을 DOCX 또는 TXT로 변환한 후 번역하세요.

"StopTime"처럼 일부 단어가 붙어 있습니다. 이는 표 셀이었습니다. 이 경로에서는 RTF 표의 셀 경계가 손실됩니다. 표가 중요한 경우 파일의 DOCX 사본을 번역하세요.

문장이 해당 문장에 속하지 않는 텍스트로 끝납니다. 아마도 각주일 것입니다. 원본에서 찾아 번역을 Word의 각주로 다시 옮기세요.

번역에서 숫자가 누락되었습니다. 0–9 및 a–f의 20자 이상인 경우 번역 전에 제거되었습니다. 원본에서 다시 복사하세요. 검사기의 MISSING 줄에 모두 나열됩니다.

서식이 사라졌습니다. RTF 경로에서는 예상된 결과입니다. 파일이 일반 단락으로 재구성됩니다. 서식이 필요한 경우 DOCX 사본을 번역하거나 번역 후 스타일을 다시 적용하세요. DOCX 번역 도구 비교에서는 어떤 도구가 Word 서식을 유지하는지와 얼마나 잘 유지하는지 다룹니다.

결과를 DOCX로 받을 수 있나요? RTF 업로드에서는 불가능합니다. RTF가 입력되면 RTF가 출력됩니다. 업로드 전에 원본을 DOCX로 변환하면 결과가 DOCX로 반환됩니다.

관련 글