How it comparesEvery target locale is checked key-by-key against the base: missing keys, extra keys, empty values and curly-brace placeholder mismatches; fill missing keys in one click and download the aligned file.
Base + target locales
BASEBase locale
Target locales
Load the base and target locale JSON
Diff report
Catch untranslated keys

i18n Locale File Diff

Base vs targets · missing / extra / empty / placeholders · one-click fill · local

🔒Processed locally in your browser — never uploaded or stored

No upload, no storage

JSON is processed in memory and never sent to a server.

Share via URL fragment

Share links encode data in the # anchor — never sent to a server.

Remember last edit

Optionally keep your last input locally; clear it with one click.

Why use the i18n Locale Diff

Multi-locale matrix

Paste the base plus up to 6 target locales and get missing, extra and empty keys for each — no more eyeballing files side by side.

Placeholder check

Verifies curly-brace interpolation placeholders match across locales, catching missing-argument bugs before runtime.

One-click fill

Missing keys are inserted following the base structure: as empty strings for fallback, or copied from the base as to-translate stubs.

Base-aligned output

The filled file is reordered to the base key order while target-only keys stay in place — clean diffs, easy reviews.

Local · no upload

Locale files are compared entirely in your browser; data is never uploaded or stored.