← All toolsIf %Username% comes back as %Nom%, the substitution stops matching and the learner is greeted by literal text. It fails at run time, in a language nobody on the authoring side reads. Paste both versions or drop in an XLIFF file and every placeholder and tag is compared.
Free · No account · Your files never upload
What this does
Compares a source string against its translation and reports every placeholder or tag that went missing, appeared from nowhere, changed in number, or moved. Works on pasted text or on an XLIFF file directly.
Why this failure is worse than it looks
It does not break the file. The XLIFF is valid, the import succeeds, the course builds. It breaks at run time, in the target language, on a screen nobody on the authoring side can read. A greeting reading “Bonjour %Nom%” looks entirely correct until a French learner sees their own name replaced by punctuation.
Reordering, which is the subtle one
Numbered placeholders like %1$s and %2$s are often deliberately reordered by a translator, because word order differs between languages and the numbering exists precisely so they can. But if the numbers move without the translator understanding what they refer to, the string still renders and puts the values in the wrong places. That is flagged separately from a missing placeholder, because it is a different kind of wrong and much harder to spot.
What it will not do
It cannot tell you whether the translation is any good. It checks that the machinery survived, which is the half of translation quality assurance a non-speaker can actually do.