Deterministic rule

Extra Keys Check

The extra keys check flags target string paths that do not exist in the source JSON file.

Examples

Source JSON
{
  "nav.home": "Home",
  "nav.settings": "Settings"
}
Target JSON
{
  "nav.home": "ホーム",
  "nav.settings": "設定",
  "nav.legacyHelp": "ヘルプ"
}
Expected finding
Extra key: nav.legacyHelp
Release impact
Target-only keys can hide stale UI copy, make diffs noisy, or indicate that a key was renamed rather than translated.

What LocaleQA checks

LocaleQA compares flattened target JSON string paths against source paths and reports target-only entries.

Extra keys commonly come from old files, translation memory reuse, hand-edited merges, or accidental key renames where the original source key was not preserved.

What appears in the report

The report shows the target-only path so teams can decide whether to remove it, keep it for a documented reason, or investigate a possible rename paired with a missing key.

Localization PMs and vendors can use this to keep delivery files clean; developers can use it to avoid stale resources accumulating in product code.

When to keep or skip this check

Some teams intentionally keep locale-only strings for market-specific legal copy, local support links, or platform-specific behavior. Those cases should be documented so reviewers do not remove useful content.

Disable this rule when target-only keys are expected for a scan. Keep it enabled for standard source-target parity checks, release cleanup, and vendor deliveries where target files should mirror the source structure.

How to use the finding

LocaleQA reports the affected JSON path, the source and target values involved, and the rule that triggered the finding. Developers, localization PMs, vendors, and QA reviewers can use that as a specific file-level item to fix, approve, or discuss before release.

Some findings are valid exceptions. A migration file, documented style choice, or locale-specific convention may explain the difference. In those cases, teams can leave the string as-is or disable the check for that scan.

LocaleQA is JSON file QA. It does not judge wording or rewrite translations; it surfaces the file issue so the responsible owner can decide the right fix.

Related pages