Skip to content
Yuki edited this page Jul 13, 2026 · 2 revisions

Checks

check-identical

Finds target locale values that are identical to the base locale.

Example:

{
  "en": {
    "home": {
      "title": "Welcome back"
    }
  },
  "zh": {
    "home": {
      "title": "Welcome back"
    }
  }
}

This reports zh.home.title.

Ignored cases include:

  • Matching allowIdenticalKeys.
  • Matching allowIdenticalValues.
  • Matching a categorized doNotTranslate rule. These findings include category, reason, comment, and owner metadata.
  • Same language family targets such as en and en-GB.
  • Blank values.
  • External references.
  • Placeholder-only values.
  • Code-like values when ignoreCodeLike is enabled.

check-placeholders

Compares placeholder sets between the base locale and target locales.

Example:

{
  "en": {
    "user": {
      "greeting": "Hello {name}"
    }
  },
  "zh": {
    "user": {
      "greeting": "你好"
    }
  }
}

This reports:

missing placeholder: {name}

Supported by default:

  • {name}
  • {{ name }}
  • %s, %d, %i, %f
  • %(name)s

$1-style placeholders are not enabled by default because they are indistinguishable from currency. They can be enabled explicitly with a custom placeholder pattern.

check-hardcoded

Scans source files for static user-visible strings.

Detected:

  • Vue template text.
  • Static Vue attributes.
  • JSX/TSX text.
  • Static JSX/TSX attributes.
  • Static string arguments passed to configured JS/TS functions.
  • Nested conditional and logical branches in configured call, assignment, and object-property sinks.
  • Vue interpolation and bound-attribute expression strings.
  • Interpolated templates as one normalized message, for example `Delete ${key}?` becomes Delete {key}?.

Ignored:

  • Whitespace-only text.
  • Dynamic Vue bindings that do not contain extractable message strings.
  • Runtime JSX expressions.
  • Mustache-only values.
  • Numbers, symbols, paths, URLs, hex colors, and short all-caps codes.
  • Values matching hardcoded.ignoreValues or hardcoded.ignorePatterns.

Severity

Severity Meaning
high Strong signal that translation or extraction is needed.
medium Likely issue, often short labels or single words.
low Possible issue requiring review.
ignored Known safe or explicitly ignored.

Hardcoded findings also include confidence (low, medium, or high) and a category. Severity controls failOn; confidence estimates whether the value is user-visible natural language. Technical identifiers, UUIDs, versions, protocol-like values, and content inside code-oriented elements receive lower confidence without hiding labels such as SAVE, LOGIN, or ERROR.

Clone this wiki locally