In addition to the “cute” -leet pseudo localization you provide, it’d be great to have a mode which turns everything using localized type (FText) into an easy to distinguish pattern such as: “Highscore” → “XXXXXXXXX”. Any text anywhere not displaying all “X” is not using the right string type. This mode would also be great to have as an optional fallback instead of English (or whatever is native) when testing localized data.
A similar mode, but doubling the string length using all capital “M” - “Edit” would become “MMMMMMMM” would help UI designers see if there’s enough space for languages like German, even though there’s no translation yet.
I’m sure there’s some localization pro out there that can suggest even more useful patterns, but these are two that have helped me well in the past.
I imagine I might just put this in myself, since the leet-mode is there as an example, but in case you beat me to it, now you know what I’m looking for.
Swapping for XXXX is nice for detecting unlocalizable text. I don’t understand what you mean regarding the fallback for that mode though.
In regards to the string length checking modes, I’m skeptical. The combination of non-fixed width fonts and repeating the same character can make noticing “perfect clipping” rather hard. Who can tell that only 31 of the 32 Ms are visible when the 32nd M is perfectly clipped off the screen.
I think a better solution would be interactive UI tools. Perhaps we could add a feature to the widget reflector that highlights/simulates common language size increases in text blocks. Also maybe a mode which makes text blocks turn a bright color or flash or something if they clip their text values. A good mode for QA.
You have a good point about perfect clipping. It would need some kind of highlight, or truncation with a special character, as you mention. Some text editors and the Unity plugin TextMesh Pro does that, and it’s pretty easy to spot.
For XXXX fallback, I was thinking, instead of falling back to English for non-translated strings, display XXXX. But perhaps just searching the .po-files for msgstr “” is more practical.
Something you might be interested in is that we have a variation of the leet mode that behaves that way as well.
-LEETIFYUnlocalized
I think this mode can only be enabled via the commandline atm. Leet is nice because it stands out a bit but doesn’t make the text unreadable or untrackable if bugs need to be reported.
Unfortunately, leet only works for roman character languages, so we definitely need to improve the system.