Configures pseudo-localization for the app (replaces translatable strings with accented variants like "Submit" → "Şüƀɱîţ" + 35% length expansion) - surfaces UI issues without needing actual translators: hardcoded strings, truncation, encoding, and bidi handling. Use when preparing an app for translation (i18n / internationalization), validating l10n infrastructure, or when the user mentions pseudo-localization or localization testing.
75
94%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
If no pseudo-localization library exists for your stack, transform the source locale file locally with a one-time pass:
function pseudoLocalize(s) {
const map = { a: 'à', e: 'è', i: 'ì', o: 'ò', u: 'ù',
A: 'Á', E: 'É', I: 'Í', O: 'Ó', U: 'Ú',
s: 'š', t: 'ţ' };
let out = '';
for (const c of s) {
out += map[c] || c;
if ('aeiouAEIOU'.includes(c)) out += c; // duplicate vowels for the length expansion
}
return `[${out}]`; // delimiters help spot incomplete wraps
}Run it over the source locale file and load the output as the pseudo-locale. The
[...] delimiters make unwrapped strings obvious, and the duplicated vowels drive
the length expansion (the 35% convention defined in Step 2).