Why AI Book Translations Leave Passages Untranslated

By Meside AI · Last updated: 2026-10-14

You are reading a translated novel. The chapter opens normally, the dialogue makes sense, and then a paragraph is still in the original language. Or it looks partly translated: a few familiar words appear, but you cannot follow the sentence. The book opens correctly in your reader, so a valid file has given you no reason to suspect missing translation.

This is a practical failure of whole-book AI translation. A model can return text for a passage without translating all of it. We encountered it in a German-to-Polish book and used that incident to compare two ways of finding source-language text left behind. The results explain why we keep both checks, and why readers should still spot-check the downloaded book.

Why a translated EPUB can still contain untranslated text

An EPUB has two separate things to get right: its structure and its text. Chapters, navigation, and formatting can survive while a passage remains in the source language. Seeing a complete chapter list or reaching the last page therefore does not establish that every passage was translated.

Some failures are easy to recognize: the model returns the source paragraph unchanged. Others are less obvious. It may change a few nouns while leaving the source grammar and most words intact, or translate the first part of a paragraph and leave its ending untouched. A check for an exact copy cannot catch a passage that has changed slightly.

Checking the alphabet is also insufficient. German and Polish both use Latin letters. German belongs to the Germanic branch of Indo-European, while Polish belongs to the Slavic branch; sharing a script does not make them closely related languages. Latin script alone does not identify a language. A German sentence with a Polish noun can pass a script check while still being unreadable to someone who reads only Polish.

These observations concern text left untranslated. A fluent target-language passage can still distort meaning, use the wrong term, or omit information. Finding leftover source language is one useful check, not an assessment of overall translation fidelity.

Three illustrative examples of translation completeness

The examples below are self-authored illustrations, not customer text or measured test cases. We have not scored them with Jev. They show what to look for when comparing a source passage with its translation.

Example 1: Polish nouns inside German sentences

German source:

Marta öffnete das Fenster. Auf der Straße wartete ein Hund.

Half-translation:

Marta öffnete das okno. Auf der Straße wartete ein pies.

Polish translation:

Marta otworzyła okno. Na ulicy czekał pies.

The half-translation changes “window” and “dog” to Polish words, but the verbs and sentence structure remain German. It is no longer an exact copy. A reader needs the sentences translated, not just a few recognizable nouns.

Example 2: An untranslated ending after a translated paragraph

German source:

Der Zug hielt am Bahnhof. Die Reisenden nahmen ihre Taschen. Eine Frau suchte ihre Fahrkarte. Die Tür schloss sich.

Incomplete Polish translation:

Pociąg zatrzymał się na stacji. Podróżni wzięli swoje torby. Pewna kobieta szukała biletu. Die Tür schloss sich.

The final sentence should be “Drzwi się zamknęły.” Most of this output is Polish, so a check based on the amount of source-language text remaining can have too little evidence to flag it. This is why paragraph endings deserve attention during a reader's spot-check. Jev can also miss untranslated endings; this illustration does not assert a verdict from either check.

Example 3: An unchanged name in a translated sentence

German source:

Anna las den Namen „Rosenweg“ auf dem Schild.

Polish translation:

Anna przeczytała nazwę „Rosenweg” na tabliczce.

“Rosenweg” stays unchanged because it is the name on the sign. The surrounding sentence has been translated. An unchanged name alone does not prove an omission, so simply flagging every shared word would create false alarms.

How we combine Jev with a local completeness check

EPUB Translator uses a local check for source-language text carried over into the translation, alongside Jev, TypeSafe's flagship decision model for typed questions and structured decisions. Jev compares a source passage and its output against the requested target language. Its role here is to judge whether the passage was translated, not to generate the translation or replace a human proofreader. TypeSafe explains the model's broader role in its official introduction.

The two checks provide different evidence. Substantial source-language carryover can expose a paragraph that has only a few nouns changed. Jev adds a model-based decision that can catch some passages the local check cannot judge. If either check flags a passage as incomplete, it triggers retranslation. Jev is used alongside the local check, rather than making the local check wait for Jev to fail.

These checks apply to eligible prose passages. Short passages and non-prose content are not all eligible for the same checks. If Jev is unavailable, the local check continues with narrower capability. The EPUB translation workflow also includes checks on the file's structure; those answer a different question from whether its prose has been translated.

What our October 11 validation found

On October 11, 2026, we compared the checks on a real German-to-Polish translation incident containing 2,803 eligible prose passages. The two checks disagreed on 16 passages, and we manually reviewed every disagreement. Using that review to distinguish false alarms from untranslated text, we identified a known set of 37 untranslated passages across the checks' results.

CheckDetected out of 37False alarms (in incident)
Jev only25/373
Local check only36/370
Either check flags37/373

Jev passed 12 passages that were mostly German with one or two nouns changed to Polish. The local check caught those. The local check missed one short half-translated passage because it contained insufficient comparable text; Jev caught it. The two methods covered different weaknesses in this incident.

The three false alarms were passages that had actually been translated. Two contained mistranslations, and one had an awkward last sentence. Those defects may deserve correction, but they remain false positives for untranslated-text detection. Counting them as successful detections would confuse translation quality with translation completeness.

We also checked two separate healthy translations: 573 English-to-Portuguese passages and 591 English-to-Czech passages. Jev, the local check, and their combination each produced zero false positives across those 1,164 passages. That result belongs to those two books; it does not erase the incident's three false alarms or establish reliability across other books and language pairs.

The incident was selected because it had a known problem. Human review concentrated on the disagreements; this was not a blinded, exhaustive audit of every sentence in the book. We cannot rule out passages that both checks missed. 37/37 describes detection of the known set, not perfect coverage, final translation quality, production-wide accuracy, or a guarantee that every delivered passage is translated.

What happens after a passage is flagged

A flag triggers another translation attempt. Persistent problems escalate to a stronger translation model. The purpose is to correct the passage, rather than merely record that something went wrong. Detection and successful repair are separate outcomes: finding an untranslated passage does not ensure that another model will translate it correctly.

There is also a delivery limitation. If retries or escalation fail, or escalation is unavailable, delivery can continue with a problematic passage from the original translation model, and the issue is logged. The checks and retries do not guarantee that every final passage is translated. A completed download is therefore a reason to start reading and reviewing, not proof that the book passed human proofreading.

For readers comparing a dedicated workflow with a chat window, the useful difference is the checking and retry process. Our comparison with direct LLM translation explains that workflow and its limits. Neither approach removes the need for human review when accuracy matters.

How to spot-check your translated book

Start with passages from the beginning, middle, and end, and include paragraph and chapter endings. Compare them with the source, especially where the language suddenly feels unfamiliar. Looking only at the opening page can miss a problem much later in the book.

Read whole sentences around unchanged words. A name such as “Rosenweg” can be legitimate; German verbs and grammar surrounding a Polish noun are a different signal. If you cannot read the source language, a bilingual reader can help distinguish untranslated text from an unfamiliar name. Automated checks do not validate meaning, terminology, tone, or omissions of every kind.

If you find a suspected omission, contact support with the language pair, approximate location, and the smallest source-and-translation excerpt needed to explain it. Avoid sharing the entire book or unrelated personal information. Contact details and the team behind the service are on About EPUB Translator.

When you are ready to evaluate your own file, upload your book to enter the existing upload and quote flow. You see the exact quote before payment. Check current pricing for the terms that apply to your book.