DeepL vs ChatGPT for Translating Documents: File Output, Glossaries, and Review
DeepL returns a translated file; ChatGPT returns text in a chat. Compare file formats, size limits, glossaries, privacy settings, and review use, plus a DOCX round-trip test.

Most DeepL vs ChatGPT comparisons paste the same sentences into both tools and score the results. That answers a sentence-level question. If you have a whole document, the first difference is what you get back. DeepL's file translation returns a translated copy of your file in the same format. ChatGPT reads your file and, by default, answers with text in the conversation. It may offer to generate a file, but OpenAI's uploads help does not describe returning a translated copy of your original file. That one difference decides most of what follows: whether headings, tables, footnotes and comments survive, how you enforce terminology, and where your review time goes.
Short answer, as checked on October 21, 2026:
- Use DeepL when the deliverable is the document itself (a DOCX, PPTX or PDF that someone will open and use), it fits the per-file limits of your plan, and you can enforce terms with a glossary.
- Use ChatGPT when the deliverable is understanding or a decision: a summary of a foreign-language document, alternative renderings of a difficult paragraph, a terminology discussion, or a second opinion on a translation you already have.
- Use both for the documents that matter most: translate the file with a file tool, then take only the hard passages to ChatGPT for review.
We did not run a quality contest for this article, and we don't name a winner on translation quality. The comparison below covers the mechanics. These are documented on each vendor's own help pages, and they change less often than model quality does. At the end there is a small DOCX test you can run on both tools with your own accounts.
What each tool does with an uploaded document
| Question | DeepL file translation | ChatGPT with an uploaded file |
|---|---|---|
| What comes back | A translated file in the same format | A text reply in the chat by default; the uploads help does not describe a translated copy of the original file |
| Office formats | DOCX/DOC, PPTX and PDF on every plan; XLSX on Pro Team, Business and the API (file formats) | DOCX, PDF, TXT, XLSX/XLS/CSV/TSV and PPTX can be uploaded (uploads help) |
| Size limit per file | Plan-based: 5 MB and 100,000 characters for a free DeepL account, up to 100 MB and 1 million characters on Pro Business | 512 MB, and 2 million tokens for text and document files |
| How much you can send | A monthly number of file translations per plan | 80 uploads every 3 hours; Free users get 3 uploads per day |
| Images inside documents | The file formats page does not say how images inside a document are handled; PNG/JPG files on their own are a beta format | Outside ChatGPT Enterprise, retrieval "extracts digital text from the file rather than its embedded images" |
| Terminology control | Glossaries can be applied to a file translation, up to five at once (glossary in files) | The uploads page describes no glossary feature; terms go in your instructions |
| Training on your content | DeepL's Pro plan table lists "No data training" for Individual, Team, Business and Enterprise, not for the free version | Depends on your data settings for consumer plans; OpenAI says it does not use business offerings such as ChatGPT Enterprise and the API to improve models |
Two rows matter most when you choose.
The output row. A DeepL file translation keeps the original file around your text. Styles, tables and the document's structure are in the returned copy, so your review is mostly about language. A ChatGPT reply is text. To end up with a document, someone has to put that text back into the original layout. That rebuild is where structure gets lost, as the test below shows. ChatGPT's uploads page describes working with a file's contents (summarizing, comparing, extracting, rewriting a short document). It does not describe returning a translated copy of the original file.
The images row. If your PDF is a scan, or key content sits in images, ChatGPT on most plans reads the digital text layer and skips the embedded images. A scanned PDF with no text layer gives it almost nothing to work with. For that case, read PDF text extraction vs OCR first and choose a tool that runs OCR.
Limits: which ones you actually hit
For DeepL, the per-file character cap usually decides things before file size does. A free DeepL account accepts 100,000 characters per Word or PDF file. Pro Individual and Team accept 1 million, and the API Developer plan accepts 500,000. A full-length book goes past the free cap, so it has to be split, and each part uses up one of your monthly file translations. Our DeepL document translation limits guide works through a 400-page book on each plan, including the API's 50,000-character minimum charge per PDF or DOCX.
Also note: on DeepL, a file translated with a free account (no subscription) comes back not editable. The file formats article says you need a Pro plan to edit the translated file. If you plan to correct the output in Word, test with the plan you will actually use.
For ChatGPT, the upload limits are generous: 512 MB per file and 2 million tokens per text document. The upload limit isn't the constraint. The constraint is that the translation comes back as chat replies, and a long document means many turns, which you then have to assemble and check for gaps. That is a workflow cost you won't see on any limits page, and it grows with document length. The ChatGPT for translation guide covers where this breaks for whole books.
Glossaries: enforced on a file vs requested in a prompt
Terminology is where the two tools differ most, and sentence-level tests miss it completely.
On DeepL, a glossary is a term list attached to the translation. You can apply up to five glossaries to a file translation. Uploading an existing glossary as CSV works on the Team, Business and Enterprise plans (and the legacy Advanced and Ultimate plans), according to DeepL's glossary upload page. The format is two columns per line, for example seat,Lizenz. The glossary's language pair has to match the translation you are running.
On ChatGPT, you get the same effect by writing the term list into your instructions ("translate seat as Lizenz, never Sitz"). This is flexible: you can explain why a term is fixed, give context, and ask the model to flag any sentence where the term doesn't fit. But the instruction is a request, not a binding rule, and over a long conversation you have to check that it held. Whichever tool you use, check terms after translation. The test kit below counts them for you.
If you don't have a term list yet, start with building a translation glossary. It helps both tools.
A DOCX round-trip test you can run on both tools
Instead of a quality score, we built a small file that shows where a document translation can go wrong, and a script that checks what came back. Everything runs with the Python standard library.
- make_docx_fixture.py builds docx-roundtrip-source.docx: a one-page English admin guide with two heading levels, a 3×3 table, a bold term, a hyperlink, a footnote, a reviewer comment, a header and a footer.
- glossary-en-de.csv holds three English→German terms with a known trap: seat means a paid user license here, so it should be Lizenz, not Sitz. The file uses DeepL's two-column upload layout.
- check_docx_roundtrip.py compares the source file and a translated file. It counts 12 structural features and compares glossary term counts.
To check that the checker itself works, we made a constructed example, docx-roundtrip-pasted-example.docx (built by make_pasted_example.py). It holds our own German translation of the page, pasted as plain paragraphs into a new document. That is how text copied out of a chat window usually lands in Word. It is not output from DeepL or ChatGPT. In one sentence we wrote Sitz on purpose. The recorded check output:
structure source output result
paragraphs 15 9 CHANGED
heading paragraphs 3 0 CHANGED
tables 1 0 CHANGED
table cells 9 0 CHANGED
bold runs 1 0 CHANGED
hyperlinks 1 0 CHANGED
external link targets 1 0 CHANGED
footnote references 1 0 CHANGED
footnote texts 1 0 CHANGED
comments 1 0 CHANGED
header text present 1 0 CHANGED
footer text present 1 0 CHANGED
glossary terms: source count -> target count in output
workspace -> Arbeitsbereich: 6 -> 5, untranslated 0 check
seat -> Lizenz: 8 -> 6, untranslated 0 check
admin -> Administrator: 7 -> 6, untranslated 0 check
12 structure row(s) changed
All of the body text is there, but all 12 structural features are gone. The glossary rows are flagged too, and for different reasons. Lizenz is short by two: one seat became Sitz, and the footnote that held another seat is gone. Arbeitsbereich is short by one because the header was lost, and Administrator is short by one because the footer was lost. That is the point of the test: a document can read perfectly well and still be the wrong deliverable.
To run it on the real tools:
- Run
python3 make_docx_fixture.py(or download the source file). - DeepL: upload the DOCX at the file translator, choose English→German, apply the glossary if your plan allows it, and download the result.
- ChatGPT: upload the same DOCX and ask for a German translation that uses the three glossary terms. Save the result the way you would actually deliver it, whether that is a file ChatGPT offers or text pasted into Word.
- Run
python3 check_docx_roundtrip.py docx-roundtrip-source.docx <translated>.docx glossary-en-de.csvon each result.
The script counts structure, not quality. Read both outputs too. A file that passes every row can still contain a wrong translation, and the glossary check matches substrings, so a German compound such as Administratorlizenz counts toward Lizenz and can hide a missing term. Treat a glossary flag, or the lack of one, as a place to look, not a verdict.
Which tool for which document
| Your document and goal | Better fit | Why |
|---|---|---|
| A Word report or contract that someone will edit, within your plan's limits | DeepL | You need the returned file. Use a paid plan if you need to edit it |
| A slide deck to present in another language | DeepL | PPTX comes back as PPTX; ChatGPT would hand you text to rebuild into slides |
| A foreign-language paper you only need to understand | ChatGPT | You need explanations and summaries, not a formatted copy |
| A paragraph with idioms, wordplay or a legal nuance | ChatGPT | You can ask for alternatives and reasoning; see translating idioms |
| Checking a translation you already have | ChatGPT | Paste source and target side by side and ask for meaning errors and terminology drift |
| A scanned PDF | Neither, at first | ChatGPT skips embedded images outside Enterprise. OCR and layout choices come first; see translating a scanned PDF |
| A whole book over the free DeepL cap | Depends on plan and format | DeepL means splitting into parts. ChatGPT means many turns to assemble and check |
The combined workflow for important documents: translate the file with a tool that returns the file. Then look for the passages where meaning is in doubt: definitions, warnings, wordplay, anything a reader will act on. Take only those to ChatGPT with both the source and the translated text. Ask for a list of problems before you ask for a rewrite, so you can see what changed and why. The post-editing guide shows how to plan this review.
When the document is a whole book
Both tools are general-purpose. For a full book, the practical problems are the ones above at a larger scale: per-file caps and monthly file counts on DeepL, and many conversation turns to assemble on ChatGPT. Keeping names and terms consistent across chapters is also hard in both.
BookTranslator is built for that case. You upload the whole EPUB, DOCX or PDF and get a translated file back. For EPUB and DOCX tasks you can turn on an auto glossary that tracks names and key terms across the book (it is not available for PDF tasks). Pricing is based on word count, and you see the final price before you pay. It is not a substitute for review on high-stakes text, and you still check the result: the round-trip script above works on other DOCX files too, including a BookTranslator output. If your file is a Word document, start at the DOCX translator. For a PDF, use the PDF translator. For keeping Word layout intact in general, see translating a Word document without losing formatting.
Related Posts





