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.
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
flagExtra | boolean | true | Report 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