Deterministic rule

Internal Whitespace Check

The internal whitespace check flags changes to repeated spaces or tabs inside a string, excluding leading and trailing whitespace.

Examples

Source JSON
{
  "shortcut.copy": "Press Ctrl  C",
  "table.header": "Name	Status"
}
Target JSON
{
  "shortcut.copy": "Ctrl C を押します",
  "table.header": "名前 Status"
}
Expected finding
shortcut.copy: double internal space removed
table.header: tab changed to space
Release impact
Monospaced output, keyboard instructions, tables, and preformatted examples can rely on spacing that is invisible in normal review.

What LocaleQA checks

LocaleQA compares internal whitespace runs, such as repeated spaces or tabs, on matching source and target strings. It ignores leading and trailing whitespace because those have separate checks.

Internal whitespace drift commonly appears when translators clean up text that looks odd in a JSON file but is intentional in the product, such as a table, command output, or keyboard shortcut example.

What appears in the report

The report shows the affected JSON path and the internal whitespace drift it detected. The finding gives reviewers a specific place to decide whether the formatting is required.

The rule does not know whether a double space is good writing. It only reports that the target no longer preserves the source spacing pattern.

When to keep or skip this check

Some locales legitimately rewrite spacing around Latin terms, numbers, or symbols. Some style guides also prefer normalizing double spaces that were accidental in source.

Disable this rule when the source contains known spacing noise or when the target locale intentionally changes spacing conventions. Keep it enabled for preformatted text, examples, tables, CLI output, and strings used in snapshots or exact comparisons.

How to use the finding

LocaleQA reports the affected JSON path, the source and target values involved, and the rule that triggered the finding. Developers, localization PMs, vendors, and QA reviewers can use that as a specific file-level item to fix, approve, or discuss before release.

Some findings are valid exceptions. A migration file, documented style choice, or locale-specific convention may explain the difference. In those cases, teams can leave the string as-is or disable the check for that scan.

LocaleQA is JSON file QA. It does not judge wording or rewrite translations; it surfaces the file issue so the responsible owner can decide the right fix.

Related pages