Pseudo-localization is a testing technique where you replace your English UI strings with synthetic text that simulates the characteristics of translated text — extended length, accented characters, and altered word boundaries — without waiting for actual translation.
What pseudo-localization reveals
1. String truncation
German text is typically 30% longer than English. Finnish can be 40% longer. If your button says "Submit" and only has room for 8 characters, the German "Absenden" fits — but "Abonnement kündigen" (Cancel subscription) definitely doesn't. Pseudo-localization pads every string to 130–150% of its English length, surfacing every truncation point before you spend money on real translation.
2. Hardcoded strings
If a string shows up in English while everything else is pseudo-localized, it's hardcoded. These are the strings your i18n extraction missed — and they'll show up as untranslated in your shipped product.
3. Character encoding issues
Pseudo-localization replaces ASCII characters with accented Unicode equivalents (a → å, e → ë). If these render as boxes or question marks anywhere in your UI, you have an encoding issue that will break real translations — especially for languages like Arabic, Chinese, or Thai.
4. Concatenation bugs
Strings assembled by concatenation ("You have " + count + " items") break in languages where word order differs. Pseudo-localization with reordered segments reveals these issues immediately.
How to run it
- Generate pseudo-localized strings: Use a tool like pseudolocalize or a custom script that pads length, adds accents, and wraps strings in brackets [Ṫĥĩş ĩş Ä á¹«Ä“ÅŸá¹« ÅŸá¹«Å—Ä©Å‹Ä ~~~~~~~~~~]
- Load into your app: Replace your default locale strings with the pseudo-localized version and run the app.
- Visual audit: Walk through every screen. Look for truncation, overflow, missing brackets (= hardcoded strings), and rendering issues.
- Fix before translation: Every issue found now is an issue that won't waste linguist time or cause post-translation rework.
When to run it
Run pseudo-localization as part of your CI pipeline. Every new screen, every new string, every layout change — test with pseudo strings before requesting real translation. The cost is near-zero. The savings on rework are significant.
Want help setting up pseudo-localization in your pipeline? Start a project — we can integrate pseudo-loc testing into your CI/CD workflow and catch layout issues before they reach your linguists.