Gloss Tools by GlossQuote

Translation file completeness checker

Before a website launch, compare a reference locale JSON with its translation. Find missing and extra keys, type conflicts and broken placeholders, then download a report of what needs attention.

Input stays in this page’s memory; it is not uploaded or automatically saved. Switching languages or leaving the page discards data you have not exported.

Preparing local checking. If this message remains, use a browser with native modules, TextEncoder and TextDecoder. There is no cloud fallback.

Compare two locale files

This example uses fictional data. Existing content requires replacement confirmation.

Paste text or choose your own UTF-8 JSON file. Each input: up to 1 MiB and 5,000 strings.

Choose one syntax. Names are case sensitive and occurrence counts must match. Names start with an ASCII letter or underscore and may include digits. ICU, plural and %s are not supported. Unknown braces are flagged for manual review.

Add data to begin: paste both JSON files or load the labeled fictional example.

Format and limits

The root must be an object and leaves must be strings. Empty objects are valid; only string leaves are compared, so empty objects are not treated as strings. Each input: 32 object levels (root = 1), 10,000 properties, 200 UTF-16 code units per key and 16,384 per string. Duplicate decoded keys, unsafe keys, unpaired surrogates, arrays, null, numbers and booleans reject the entire input.

Paths use independent segments: ["a.b"] differs from ["a","b"]. A string/object conflict is listed at the parent path; descendant missing/extra keys are suppressed. Numeric-looking keys keep their original input order.

Processing uses device memory and stops at the limits. Clear removes this page’s data and download links, not files already downloaded. It does not promise secure erasure of browser or system memory.

Frequently asked questions

Does this assess translation quality?

No. It checks keys and supported placeholder syntax, not linguistic quality.

Is ICU supported?

No. Unsupported brace syntax is flagged for review. %s is not a supported placeholder syntax.

Is unchanged text an error?

No. Names and numbers may intentionally match; this is a review warning. Empty translations are also warnings for you to assess in context.