Glossary / Internationalization

Internationalization

Internationalization (often i18n) is designing software so it can support different languages, scripts, regions, calendars, numbering systems, time conventions, and cultural expectations without redesigning the application. It is an architectural capability; localization supplies specific language- and region-appropriate content and behavior. Good internationalization externalizes text, uses Unicode safely, delegates formatting to locale-aware APIs, supports text expansion and bidirectional writing, and keeps business data separate from its localized presentation.

Engineering foundations

Architecture and quality

Keep canonical values (instants, amounts, identifiers) separate from display strings. Store translations with versioning and fallback behavior; avoid concatenating fragments whose word order varies across languages. Test pseudo-locales, long strings, RTL, non-Latin scripts, plural categories, and locale-specific date/number input. Define which system determines locale preference and allow user override where appropriate. Internationalization should be included in component contracts and data schemas, not added as a final translation phase.

Interview questions

  1. i18n versus l10n? Internationalization makes the system adaptable; localization adapts content and presentation for a particular locale.
  2. Why avoid string concatenation? Word order, grammar, punctuation, and plural structure vary; translators need whole messages and parameterized tokens.
  3. Why use Intl? It uses locale data and handles variation that ad hoc formatting misses.
  4. What is pseudo-localization? A test transformation that expands/accents strings or inserts markers to expose hard-coded text and layout assumptions.
  5. What is the hardest design mistake to reverse? Often data models that store localized display text instead of canonical values or assume a single script, locale, or direction.

References