Contents

Frontend Development › UI/UX for Engineers

Localization (l10n)

Translating and adapting software for a specific locale.

Also known as: localization, l10n, internationalization vs localization

Localization (l10n) adapts a product to a locale: translated strings, date/number/currency formats, time zones, reading direction, imagery and legal bits — built on internationalization (i18n, the architecture that makes locales possible: externalised strings, Unicode throughout, locale-aware formatting).

i18n (architecture): external strings, ICU messages, locale-aware APIs
l10n (per locale):   translations, formats, RTL layout, local conventions

Quality localizations read native — plural rules, gender, formality and date conventions vary per language — and layout survives translation (German runs long, Arabic mirrors, CJK sets differently). Pseudolocalization ([!! ßêta !!]) in development exposes hardcoded strings and breakage early.

The classic mistakes:

  • Concatenated sentences. "You have " + n + " messages" untranslatable as a unit — word order differs. Single ICU messages with variables and plurals, always.
  • Hardcoded strings. UI copy in code can’t be extracted, translated or reviewed. Externalise from the first commit.
  • Locale-unaware formatting. Dates, numbers and currencies formatted one way globally confuse or mislead (month/day order, decimal separators, currency placement). Format via locale APIs.
  • Fixed-size layouts. Translated strings expand 30–100%; rigid buttons and fixed widths clip them. Flexible layouts, tested in long languages.
  • Direction blindness. LTR-assumed layouts break in RTL. Logical properties and RTL testing from the start (see RTL support).
  • Untranslated fallbacks failing. Missing keys showing blanks or crashing beats showing the source language. Fallback chains (locale → base language → key) never render nothing.
  • Images and icons with text. Embedded text can’t translate; culture-specific imagery offends or confuses. Localise assets, not just strings.
  • Legal/currency afterthoughts. Taxes, consent wording, payment methods and address formats differ per market. Involve local expertise before launch, not after complaints.

The practice: i18n architecture first (ICU messages, locale APIs, flexible RTL-ready layouts), professional translation workflows, pseudolocale testing, per-market review. Fluency in every locale is a feature — ship it like one.