You do not need 12 translators to find 80% of localization bugs. Pseudo-localization surfaces hardcoded strings and fragile layouts before a single real translation exists, and vision models can sweep hundreds of screenshots for truncation and overflow — while cultural-appropriateness questions still route to native speakers, always.
Tier: Advanced · Workflow area: Non-functional & visual testing
This playbook builds a pseudo-loc pipeline into your build, screenshots the critical screens across locales, and uses a vision model as a tireless first-pass reviewer with a human escalation path for everything judgment-shaped.
pseudo-localization (npm), i18next-pseudo, or a 20-line script the assistant writes against your resource format.Generate the pseudo-locale as a build artifact. Transform your base strings into an accented, expanded, bracketed variant:
npx pseudo-localization ./locales/en.json > ./locales/en-XA.json
{ "checkout.submit": "[Þŀàçè ýöûŕ öŕðèŕ ñöŵ one two]" }
The three tricks each catch a bug class: accents catch encoding issues, ~40% expansion catches truncation, brackets catch clipped ends. Any plain-English text visible in the pseudo-locale build is a hardcoded string — file it immediately.
Screenshot the critical screens per locale variant.
for (const locale of ['en-XA', 'ar', 'de', 'ja']) {
const page = await browser.newPage({ locale });
await page.goto(`/checkout?lng=${locale}`);
await page.screenshot({ path: `shots/${locale}/checkout.png`, fullPage: true });
}
Include RTL even before Arabic translations exist — pseudo-RTL (en-XB style, direction flipped) finds mirroring bugs early. Keep the set to your 15–25 critical screens; this is a sweep, not an archive.
Vision-model first pass, tightly scoped to mechanics.
You are reviewing UI screenshots for LAYOUT defects only. For each image:
- Truncated text (ellipsis or clipped glyphs) — quote the visible fragment.
- Text overflowing its container or overlapping other elements.
- Buttons/inputs whose label no longer fits.
- RTL screens: elements that failed to mirror (icons, chevrons, progress).
- Text rendered as tofu boxes (missing glyphs).
Report as a table: screen, element, defect type, confidence (high/med/low).
Do NOT comment on translation quality, wording, or aesthetics.
Sample output you should expect:
| checkout | "Place your ord…" submit btn | truncation | high |
| profile | date joined overlaps avatar | overlap | med |
| cart-ar | back-chevron points left | RTL unmirrored| high |
Human-verify the high/medium findings. Open each flagged screenshot; confirm or reject. Vision models are strong on truncation and overlap, weaker on subtle spacing — expect a real-but-manageable false-positive rate, and track it (step 6 uses it).
Escalate the judgment questions to native speakers — with a curated packet. Everything the model was told not to judge still needs judging: idioms, formality level, culturally loaded imagery, date/name conventions. The AI's legitimate role here is triage: "From these strings, list ones with idioms, humor, or cultural references likely to need reviewer attention in Japanese." Send native reviewers that shortlist plus screenshots-in-context instead of a 4,000-row spreadsheet — reviewer hours are your scarcest resource; spend them where machine confidence is lowest.
Automate the sweep per release and calibrate. Wire steps 1–3 into CI on release branches. Each cycle, record the model's precision on verified findings. If high-confidence findings are >90% real, let medium-confidence ones batch weekly instead of blocking; if precision drops, tighten the prompt or shrink its scope. This is calibrated trust applied to vision.
Never ship a locale where only a machine has judged cultural appropriateness. A truncated button is a bug; a tone-deaf idiom in a funeral-insurance flow is a news story. The escalation path in step 5 is not optional overhead — it is the point.
en-XA behind build flags; it has reached production at real companies and it looks exactly as broken as you imagine."You have " + n + " items" may render fine in en-XA and still be untranslatable (word order). Pair this pipeline with a lint for string concatenation in UI code.Pseudo-localization finds the bugs that need no human judgment; vision models scale the eyeballs for mechanical layout defects; native speakers spend their scarce hours only on the questions machines cannot answer. Each layer exists so the next one stays affordable.