Adding a language is usually scoped as extracting the strings and sending them to a translator. The strings are genuinely the easy part, and treating them as the whole job is why so many localised products feel subtly broken.

Text length is not stable

German commonly runs a third longer than English; some languages run considerably shorter. Layouts built around the length of the original copy break in both directions, and buttons designed to fit their label become the first casualty.

Test with the longest realistic translation rather than with placeholder text of a convenient length.

Do not assemble sentences from fragments

Concatenating phrases works in English and fails elsewhere, because word order, gender agreement, and pluralisation differ. A translator handed three fragments cannot produce a correct sentence.

Keep whole sentences as single translatable units with named placeholders, and use a proper pluralisation mechanism rather than a conditional on the number one.

Names and addresses are not universal

First name and last name is a culturally specific assumption. So is a postcode format, a state field, and the ordering of address lines.

A single full-name field and a flexible address block cause far fewer problems than a form that rejects a valid name because it does not have the expected shape.

Dates, numbers, and sorting

Ambiguous date formats cause genuine errors. Decimal separators differ. Alphabetical sorting differs by locale, and sorting with the wrong rules produces an order that looks arbitrary to the user.

Use the platform's locale-aware facilities rather than formatting by hand; this is one of the few areas where the standard library is almost always correct and hand-rolled code almost always is not.

Translators need context

A string in isolation is frequently ambiguous — is "Open" a verb or a state? Provide a screenshot or a description with each string, or accept that some translations will be confidently wrong.

Retrofitting internationalisation touches almost every screen. Designing for it from the start costs very little, and it is one of the clearest examples of a decision that is cheap early and expensive later.

Written by the Global IT Solutions engineering team. Have a project this touches on?

Start a conversation