NotesCraft7 min
Notes on typesetting nine scripts without breaking them
Line breaking, conjuncts, ascenders and mirrored layouts. The unglamorous work that decides whether a page reads as professional.
Most multilingual sites fail visually before they fail linguistically. The words are right and the page still looks wrong: lines break in the middle of a compound, diacritics collide with the row above, a right-to-left layout has a stray left-aligned button. Readers do not file this as a typography bug. They file it as a cheap website.
The recurring offenders
- Japanese and Thai have no spaces between words, so naive wrapping breaks in the wrong place unless the engine knows the language.
- Devanagari conjuncts get clipped when line-height is tuned to Latin ascenders and descenders.
- Arabic and Hebrew need the whole layout mirrored, not just the text direction flipped — including icons that imply direction.
- Korean mixes syllabic blocks with Latin loanwords, and the two want different letter-spacing.
- Fallback fonts silently swap in for missing glyphs, which is how one heading ends up in three typefaces.
Each fix is small. The reason they go unfixed is that no single one is ever the most important thing on a sprint board, and the people who would notice are not in the room.
How we keep ourselves honest
Every template renders in every supported script before it ships. Not a sample string — real content of realistic length, because the bugs appear at the second line, not the first. We diff the rendered output against the previous version so a spacing change made for one script cannot quietly wreck another.
It is unglamorous work and it is most of the difference between a site that looks generated and one that looks commissioned. It is also the part we would most like to be told we have got wrong.