shipglot

missing-key

Source key absent from a target locale.

Default severity: error

What it checks

A key exists in the source locale but not in this target locale, or the target entry is new and empty (an empty PO msgstr). Users of this locale see the fallback text or the raw key. Translate the key or remove it from the source.

Example

The French file lacks a key the English file has. Config used for both runs:

{
  "sourceLocale": "en",
  "files": [
    {
      "format": "next-intl-json",
      "path": "messages/{locale}.json"
    }
  ]
}

Fails

messages/en.json

{
  "save": "Save",
  "discard": "Discard changes"
}

messages/fr.json

{
  "save": "Enregistrer"
}

Gate output

  • discard
    missing in fr
    messages/en.json:3

Passes

messages/en.json

{
  "save": "Save",
  "discard": "Discard changes"
}

messages/fr.json

{
  "save": "Enregistrer",
  "discard": "Annuler les modifications"
}

Gate output

No missing-key finding.

Change its severity

{
  "checks": {
    "missing-key": "warning"
  }
}

Use "off" to disable it. To hide one finding, add "suppress": ["missing-key:discard"]; a suppress rule that stops matching is reported so it can be removed.

All checks