I run a large fleet of "preview it, then download it as PNG" web tools — name tags, certificate generators, price cards, badges — in five languages: Japanese, English, Spanish, French, Portuguese.

Canvas 2D text rendering looks correct as long as you only test Japanese and English.

It breaks when you run es/fr/pt through it.

After stepping on these repeatedly, the failures collapse into four patterns.

The premise: Latin languages run 1.4–2× longer than Japanese