German translations run about 30% longer than English, and worst-case strings can run 60% longer. Latin filler will never show you that. Set an expansion factor here and your buttons, tabs and table headers get the length they will actually receive.
What you can control
- Seven languages, including CJK scripts with no spaces and Arabic for right-to-left checks.
- Expansion factors from −40% to +60% reproduce the length shift each language family typically causes.
- Pseudo-localization wraps each block in brackets, so any string that stays unwrapped is one you forgot to translate.
- CJK output uses correct punctuation and no inter-word spaces, which is where line-breaking assumptions fail.
What this is not
This is not translation. It is vocabulary from each language recombined at random, sized to reproduce the layout pressure a real translation applies. Never ship it as content.
Questions
Is this real translated text?
No. It is common words from each language in random order. It has the right character set, word length and line-breaking behaviour, and no meaning at all.
What is pseudo-localization for?
Wrapping every translated string in brackets makes untranslated strings obvious at a glance. If a label has no brackets, it never went through your translation pipeline.
Why does Arabic not render right-to-left here?
The output is plain text, and direction is applied by the container. Paste it into an element with dir="rtl" to see it laid out properly.