Skip to main content

Placeholder Check tool

The Placeholder Check tool verifies that every interpolation placeholder in the source survives, by count, into the target. A dropped {count} or an unbalanced <0> is the kind of break that crashes a localized application at runtime, so a placeholder present fewer times in the target than in the source is flagged as critical. It is read-only: it annotates findings and never rewrites content.

Placeholders are detected with a built-in pattern covering the common interpolation styles — {{name}}, ${name}, %(name)s (Python), %1$s (positional), %s / %d / %@ (printf / Objective-C), {name} / {0} (ICU / .NET), and numbered tags such as <0>…</0>. A target locale is required; blocks without a target for that locale are skipped.

IDplaceholder-check
SourceBuilt-in
Categoryquality
Cardinalitybilingual
Requirestarget-language
Tagsquality

Parameters

ParameterTypeDefaultDescription
flagExtrabooleantrueReport placeholders present in the target but absent from the source

Configure these parameters interactively and copy the flow-step YAML on the Tool Reference.

Examples

Only report dropped placeholders

Disable extra-placeholder reporting and flag only placeholders missing from the target.

flagExtra: false

Processing notes

  • Operates on translatable blocks that have a target for the configured locale; other parts pass through unchanged.

  • Dropped placeholders are reported at critical severity; extra placeholders (when flagExtra is enabled) at major severity.

Limitations

  • Detection is pattern-based and covers the common interpolation styles listed above; placeholder syntaxes outside that set are not recognised.

  • The check compares placeholder counts, not positions; a placeholder present the correct number of times but in the wrong order is not flagged.

  • Requires a configured target locale; blocks without a target for that locale are skipped.

← Back to the Tool Reference