CtrlK
BlogDocsLog inGet started
Tessl Logo

testland/pseudo-localization-runner

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

Quality

94%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

Overview
Quality
Evals
Security
Files

manual-transform.mdreferences/

Manual pseudo-localization transform

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).

SKILL.md

tile.json