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.
71
89%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
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).