Skip to content
Writing
How we build

Eleven languages without breaking the layout

A product used across India is used in more than one script within a single customer. A school in Karnataka sends notices in Kannada and English, prints receipts a parent must be able to read, and has an office team that works in whichever is faster. Supporting that properly is not a translation project.

2 min readOadbox

Text expands, and layouts must expect it

The same label can be considerably longer in one language than another, and some scripts need more vertical space for the same point size. Layouts built around the English string length break the first time they are translated.

Designing with flexible containers, avoiding fixed-width buttons and testing with the longest translation rather than the shortest is most of the work — and it has to happen during design, not afterwards.

The things that are not strings

  • Dates — formats, and calendars that are not Gregorian.
  • Numbers — grouping conventions differ, and lakh-crore formatting is expected in reports.
  • Amounts in words, which appear on cheques and receipts and are language-specific.
  • Sorting and searching, which must follow the script's own collation.
  • Fonts, which must actually contain the glyphs — including for PDF output.

The last one accounts for more support tickets than any of the others. A document that renders on screen and produces boxes when printed is a font packaging problem, and it is invisible until a customer prints.

Mixed-script is normal

A single record routinely contains a name in one script, an address in another and a product code in Latin characters. Storage, search, input and output all have to cope without the user thinking about it.

Consistent encoding everywhere and a keyboard-agnostic input approach handle most of it. Assuming one language per user handles none of it.

Translate what users read, not what developers wrote

Not every string deserves translation. Internal error codes, developer-facing logs and administrative settings used by one trained person are rarely worth it, while receipts, notices, statements and anything a customer or parent receives always are.

Prioritising by who reads the string keeps the translation effort finite and puts it where it changes someone's experience.

Product teamEngineeringDesign

Written by the Oadbox team. Something here not match how it works in your business? We would genuinely like to hear it — connect@oadbox.com.

Eleven products, already running. One of them probably fits how you work.

See it on your own data rather than in a slide deck — thirty minutes with someone from the product team.