T—P

Bolzano · Italy

← Writing

Design · 7 March 2025 · 5 min read

Multilingual Design Systems

Most design systems are built in one language and then 'translated' into others as an afterthought. This is almost always a mistake. Language shapes layout — in ways that are subtle enough to miss until they break.

The obvious problem: text length

German words are long. This is not a stereotype — it's a layout constraint. A button that reads 'Submit' in English becomes 'Einreichen' in German. A label that reads 'Availability' becomes 'Verfügbarkeit'. Every component that has a fixed width needs to be rethought.

This becomes critical in compact UI contexts: navigation items, filter labels, table headers, and especially mobile buttons. The fix isn't to just increase component widths everywhere — it's to design components that are flexible enough to accommodate the longest expected string in any supported language from the start.

The less obvious problem: tone and hierarchy

When I rebuilt Dolomit's site for Italian and German audiences, I didn't translate the copy — I rewrote it. The same CTA reads very differently depending on the cultural context. German-speaking users in South Tyrol expect directness: a button should say exactly what happens when you click it. Italian-speaking users respond better to warmth and context before the call to action.

This affects design decisions too. The hierarchy of information on a page — what comes first, what gets visual weight — should shift depending on the audience. A single design with two language strings is not a bilingual design system. It's a monolingual system with translated labels.

Typography across languages

Type choices that work beautifully in English can fall apart in other languages. Display fonts with tight letter-spacing become unreadable when long German compound words force line breaks in unexpected places. Italic styles that feel elegant in English can look strange in German where certain typefaces weren't designed with Italian-style italics in mind.

The rule I follow: set long test strings in every supported language before committing to a typeface. The widest character set, the longest word, the most common accented character — all of them should look right before you design a single component.

The practical takeaway

Build with the longest language first. If your system works in German, it'll work in English. Test your copy in all target languages before any component is finalised. Write separate copy for each language rather than translating — even a rough first draft written natively will outperform a careful translation. And accept that bilingual design takes more time. It's not a cosmetic addition. It's a structural decision.

Next

From CS Student to Automation Dev

Personal

← Back to site© 2025 Tashi Paris