📖 How to Use
With i18n Diff Checker, you can find key mismatches in your translation files in 30 seconds.
No account, no file upload, no network transmission required.
Basic Usage (3 Steps)
Paste your translation files
Paste your reference file (e.g. en.json) on the left (File A),
and your comparison file (e.g. ja.json) on the right (File B).
You can also load local files directly using the 📁 Open file button.
The format is auto-detected, so you can use JSON or YAML without changing any settings. If you want to specify the format explicitly, use the dropdown.
Click "Check Diff"
Press the button, or use Cmd + Enter (Mac) / Ctrl + Enter (Windows) inside the text area.
All processing runs entirely in your browser.
Review the results
🔴 Missing KeysIn A but not translated in B — add these to your target locale file.
🟡 Extra KeysIn B but not in A — candidates for removal or review.
🟢 Matched KeysCount of properly translated keys (expand to see details).
🔵 Type MismatchSame key but different types (e.g. string vs. number).
Copy a JSON Stub for Missing Keys
Click 📋 Copy JSON Stub in the top-right of the missing keys card
to generate a JSON object containing only the missing keys. All values are set to "TODO".
Paste this into your translation file and hand it off to translators — that's all it takes.
// Example output when missing keys are found
{
"nav": {
"contact": "TODO"
},
"user": {
"settings": {
"theme": "TODO"
}
}
}
About Nested Keys
No matter how deeply nested your keys are, they are flattened using dot notation for comparison.
// Input
{
"user": {
"profile": {
"name": "Name"
}
}
}
// Key displayed as
user.profile.name
Arrays are treated as values and their indices are not expanded as keys (no list.0 style expansion).
If arrays are used in your i18n files (e.g. for plural forms), they are compared as-is.
FAQ
Which formats are supported?
JSON and YAML (.json / .yaml / .yml) are supported.
You can even compare files in different formats (File A as JSON, File B as YAML).
Format comparison guide →
Is my data sent to a server?
No. All processing runs only in your browser. You can verify this by viewing the page source — there is no code that sends data to any external endpoint.
Can it handle large files?
Yes, as long as your browser has enough memory. Files with thousands of keys typically work fine. Very large files (hundreds of thousands of lines) may cause the browser to temporarily slow down.
Is TOML supported?
The current MVP supports JSON / YAML only. TOML support is planned for a future release. If you need JSON-YAML conversion, try JSON Converter Tools.
Ready to try it?
Open the Diff Checker →