Lingivio

What Survives Document Translation: A 22-Case Fidelity Ledger

The edge cases our engine is tested against, one row per case, with the state of each one today. Twenty pass in the suite that runs on every build. Two do not yet, and the reasons are on this page rather than in a footnote.

Published

"Layout preserved" is easy to write and hard to check. This page is the check. The list below is not a marketing selection: it is the engine's own edge-case matrix, written before the engine was, and the two rows that fail are marked as skipped in the test suite with the reason attached, so the ledger cannot quietly lose a row.

Read it as a ledger. Each row says what is checked and whether a test asserts it today. Where the answer is no, the row says why and what would change it.

What "Fidelity" Means Here

Fidelity on this page means structure: formulas, merged ranges, protected sheets, drawings, page counts, bookmarks, links, run formatting and speaker notes come out of the engine as they went in. It does not mean translation accuracy. We have not measured how accurate the translations are, and we do not claim a percentage for it here or anywhere else.

The structural tests run with a stand-in translator that prefixes every segment with a marker instead of calling a model. That is deliberate: the tests prove that translating a document changes text and nothing else, and they need to do so deterministically, on every build, without a provider key in the loop. What a model writes into those segments is a separate question that a structural test cannot answer.

The Files the Tests Run Against

Two real documents anchor the suite. The spreadsheet case is a Valencian government grant-justification workbook: 12 sheets, 87 formulas including cross-sheet references, 255 merged ranges, a protected summary sheet, dropdown validations, 11 drawings plus a logo image, two rich-text cells and a literal #VALUE! error. The PDF case is a 25-page born-digital applicant guide published by ENISA (Spain), in Spanish.

The 22 Cases

One row per case. "Passes in our test suite" means a test in the engine suite asserts it and the suite runs on every build. "Not yet" means the test exists, is skipped, and says why.

  1. 1 A formula comes back byte-identical, including cross-sheet references. Passes in our test suite
  2. 2 A cell holding two languages is handled by the mode you chose: replace both, keep one, or append the translation. Passes in our test suite
  3. 3 Spreadsheet error literals such as #VALUE! and #REF! are never translated and never billed. Passes in our test suite
  4. 4 A protected worksheet is still protected after translation. Passes in our test suite
  5. 5 A dropdown list written as literal options is translated; a dropdown that points at a cell range is left byte-identical. Passes in our test suite
  6. 6 Logos, images and drawings stay anchored where they were, byte for byte. Passes in our test suite
  7. 7 Chart titles and axis labels are translated, not left in the source language. Passes in our test suite
  8. 8 Text on a 25-page PDF is assembled into paragraphs in reading order, without mid-word breaks or stray marker glyphs, so a paragraph that continues past a page break is translated as prose rather than as fragments. Passes in our test suite
  9. 9 The output PDF is a copy of the source file with only the text redrawn, so vector artwork such as the highlight pills behind text is the original's. Passes in our test suite
  10. 10 A bilingual PDF is produced on request: the same page count, each page landscape at twice the width, original on the left, translation on the right. Passes in our test suite
  11. 11 Arabic-script text is shaped and laid out right-to-left in PDF and image output. Not yet
  12. 12 Hindi and CJK text is drawn in PDF and image output with a bundled font. Not yet
  13. 13 A sentence Word has split into many same-format runs is translated as one sentence, with the run formatting kept. Passes in our test suite
  14. 14 Tracked changes are accepted before translation, and the job carries a warning saying so. Passes in our test suite
  15. 15 When a translation grows enough that it may not fit its PowerPoint text box, the job flags that the slide text may overflow. Nothing is shrunk silently. Passes in our test suite
  16. 16 An image-only PDF is detected as scanned, read by OCR, translated, drawn back onto the page and billed at the scanned-page rate. Passes in our test suite
  17. 17 A password-protected PDF fails with a named error before any work is done, and nothing is charged. Passes in our test suite
  18. 18 A repeated string is translated once and reused, so a label that appears on every row of a large workbook costs one model call, not one per row. Passes in our test suite
  19. 19 A compressed file that would expand to an unreasonable size is rejected before it is decompressed; a file whose bytes do not match its extension is rejected on sight. Passes in our test suite
  20. 20 Emoji, combining marks and Windows line endings survive a round trip untouched. Passes in our test suite
  21. 21 A document already in the target language is skipped, and the job bills zero. Passes in our test suite
  22. 22 A PDF that mixes born-digital and scanned pages is handled page by page, with each page billed as what it is. Passes in our test suite

The Two That Do Not Pass

Case 11 is right-to-left shaping of Arabic-script text in PDF and image output. Case 12 is drawing Hindi and CJK text in the same outputs. Both need the same thing we have not shipped: a font and text-shaping stack for scripts our bundled fonts cannot draw, including a CJK font bundle of more than 16 MB that is held back from deployment until it is signed off. Neither is a translation problem; the text translates. It is the drawing step that is missing.

The tests for both cases exist and are skipped with the reason attached, so the suite reports them as skipped rather than as passed. When the shaping stack lands, the same two tests turn green, and this page changes with them.

How to Check This Yourself

The engine suite is not public: the repository is private and the fixture files are not published for download. What we can offer is that the suite runs on every build before anything is deployed, that the two skipped cases are recorded as skipped rather than as passed, and this page, which is updated when the count moves.

The other check is your own file. Upload a spreadsheet with formulas, a deck with speaker notes or a PDF with bookmarks; the cost is shown before you approve anything, and the first credits each month are free. Open the result in the original application and look at the parts you care about.

Six engine-produced examples are public on the examples page — an Excel workbook, a Word contract, a PowerPoint deck, a text PDF, a scanned PDF and an image — each with its source, its translation and the job's own counts. They are the only translated outputs we publish, and each was produced end to end by the same pipeline.

What This Ledger Does Not Tell You

  • It does not measure translation quality. The structural tests use a stand-in translator; the accuracy of a model's output is unmeasured and unclaimed.
  • It does not put a number on layout drift. There is no pixel-level drift metric in the suite. What is asserted is the page count, the geometry of the source blocks, and that redrawn text stays inside them.
  • The Word and PowerPoint cases run on small synthetic files, not on documents of the workbook's complexity. They assert that every non-text part of the file is byte-identical, which is the guarantee that matters, but they carry no counts worth quoting.
  • A sentence that fails our checks at translation time — a number altered, a link changed, a placeholder dropped — comes back in the original language inside an otherwise translated file. The file is visibly honest about it; the job report does not yet list those sentences for you.

All guides

Related Pages

See What Survives in Your Own Document.

Upload a file, see the exact credit cost, and decide before anything starts. A sentence that cannot be translated safely comes back in the original language, never as a guess.

Free credits every month · no card required

Cookies, analytics and diagnostics

Only strictly necessary cookies are used to sign you in and remember your preferences. We would also like your permission for analytics, so we can see which parts of the product are used, and for diagnostics, so browser errors are reported to us. Nothing non-essential runs unless you say yes, and you can change this at any time.Read the Cookie Policy