shipglot

do-not-translate

Do-not-translate term changed or missing.

Default severity: error

What it checks

Brand names, product names and code identifiers listed under doNotTranslate must appear in the translation as written in the source, with the same case. Grammatical endings are allowed, because languages such as Czech or Polish decline brand names (Lawzana → Lawzanu); translation, transliteration (Лавзана, لوزانا) or dropping the term counts as missing.

Example

The glossary lists "Shipglot" as a name that must not be translated. Config used for both runs:

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

Fails

messages/en.json

{
  "about": "Shipglot checks your translation files."
}

messages/fr.json

{
  "about": "Expédiglotte vérifie vos fichiers de traduction."
}

Gate output

  • about
    "Shipglot" must appear unchanged in the translation
    messages/fr.json:2

Passes

messages/en.json

{
  "about": "Shipglot checks your translation files."
}

messages/fr.json

{
  "about": "Shipglot vérifie vos fichiers de traduction."
}

Gate output

No do-not-translate finding.

Change its severity

{
  "checks": {
    "do-not-translate": "warning"
  }
}

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

All checks