Coverage per file
How much of the base key set each file carries.
Validate your localization files and catch missing keys, inconsistencies and potential issues before release.
{ "key": "value" }{ "key": { "nested": "value" } }{name}, %s, {{value}}<b>, <a>, <br> and moreTip: Name your files with the language code (e.g. en.json, pl.json, de.json) for best results.
Coverage per file, what kind of problem each one has, and where the two overlap.
How much of the base key set each file carries.
Every finding across all files, by type.
Which file carries which problem, and how much of it.
Of the keys that do exist, what actually differs from the base.
Translation drift is silent: the app keeps rendering, just not what you wrote.
Catch keys added in one language and never propagated, while the release is still yours to hold.
Confirm that returned files kept every placeholder and every inline tag exactly as the base had them.
Two people editing the same locale file usually produces duplicates and orphans. This names them.
It compares structure. It never rewrites, translates or judges the meaning of your copy.
Files are compared against a base file and reported on: missing and extra keys, type mismatches, placeholder and inline-tag differences, empty values and strings still identical to the base. No content is translated, suggested or stored, and the files are discarded as soon as the report is built. A string flagged as untranslated may be perfectly correct, as brand and technical terms often are.
The questions a validation report tends to raise.
By default the largest, most complete file in the set, since that is almost always the source language. Every other file is compared against it, so the base is 100% by definition.
The tokens the runtime interpolates, such as {name} or %s, differ between the base string and the translation. That is a real defect: at best the value never appears, at worst the formatter throws.
Its value is byte-identical to the base. Often that is a brand name, a code sample or a unit, and it is correct. It is reported separately from hard errors for exactly that reason.
They are sent to our server to be parsed and compared, then dropped. Nothing is written to disk, indexed or shared.