How it works
The generator tokenizes each line so every placeholder — an ICU argument, a whole {count, plural, ...} block, an HTML tag, a printf token, or a bare # — is passed through untouched. The literal text in between is mapped to visually similar accented characters and then padded to simulate how much longer the same string runs in German or Finnish. The brackets mark where each string starts and ends, so truncation is obvious at a glance — the same engine Wayline uses for localization.
Frequently asked questions
What is pseudolocalization?
Pseudolocalization rewrites your UI text into an accented, expanded, bracketed look-alike (Ĥéĺĺó → [Ĥéĺĺó·····]) so you can catch internationalization bugs before any real translation exists — hard-coded strings stay plain ASCII, and anything that breaks when text runs longer shows up immediately.
Why does length expansion matter?
German and Finnish run 30–40% longer than English, so a button or label that just fits in English overflows once translated. Padding every translatable run simulates that growth and surfaces truncation and layout breaks while you still have time to fix them.
Are my placeholders preserved?
Yes. ICU arguments like {name}, ICU plural/select blocks like {count, plural, ...}, HTML tags like , printf tokens like %s, and a bare # all pass through verbatim — only the surrounding literal text is accented and expanded, so the string stays renderable.
Is this free, and does my text get uploaded?
Yes, it is free with no sign-up, and nothing is uploaded — the transform runs entirely in your browser.