Locale QA Workbench

Find i18n bugs before they break your UI.

Upload two locale JSON files and instantly detect missing keys, placeholder mismatches, and UI strings that may overflow.

Issues
5
Critical
4
Warnings
0
Comparing en.json against ja.json

Privacy first

Your locale JSON files are parsed and compared locally in the browser. AI suggestions only send the selected issue text when you request one.

Send feedback

Source locale

en.json

{
  "app.title": "Welcome back, {name}",
  "cart.items": "You have {{count}} items in your cart.",
  "checkout.cta": "Complete checkout",
  "profile.bio": "Tell customers about your role, location, and availability this month.",
  "toast.saved": "%s was saved successfully"
}

Target locale

ja.json

{
  "app.title": "おかえりなさい、{username}",
  "cart.items": "カートに商品があります",
  "checkout.cta": "購入を完了する",
  "toast.saved": "%d を保存しました",
  "settings.language": "言語"
}

Issue dashboard

Translation QA findings

en.json / ja.json

TypeKeySource textTarget textSeveritySuggestionAI
Placeholder mismatchapp.titleWelcome back, {name}おかえりなさい、{username}criticalMatch placeholders exactly: {name}.
Placeholder mismatchcart.itemsYou have {{count}} items in your cart.カートに商品がありますcriticalMatch placeholders exactly: {{count}}.
Missing keyprofile.bioTell customers about your role, location, and availability this month.EmptycriticalAdd this key to the target locale before release.
Placeholder mismatchtoast.saved%s was saved successfully%d を保存しましたcriticalMatch placeholders exactly: %s.
Missing keysettings.languageEmpty言語infoThis key exists only in the target locale. Confirm it is still used.