Build

i18n & Localization

Making products work across languages and regions.

The territory

30 core terms mapped for this field, ranked by how often builders reach for them. Each one is a future entry. Want to bust one? One entry, one file, one pull request.

  • i18n (internationalization)Prepping code so it can adapt to any locale"making the app translation-ready" · "getting the hardcoded text out"
  • l10n (localization)Adapting a prepped product to one specific locale"actually translating it for Germany" · "the Spanish version"
  • localeLanguage plus region code controlling text, dates, currency"the country-language combo" · "en-US vs en-GB thing"
  • string extractionPulling hardcoded UI text into external translatable files"getting text out of the code" · "collecting all the words"
  • translation keyStable ID mapping to a translated string per locale"the label ID" · "the lookup name for the text"
  • message catalogFile holding all keys and translations for one locale"the translation file" · "the big JSON of strings"
  • ICU MessageFormatStandard syntax for plurals, gender, and variables in strings"the curly-brace plural syntax" · "how you say 1 item vs 2 items"
  • pluralization rulesPer-language count categories beyond English's one/many"Russian has like six plural forms" · "handling 0, 1, many"
  • interpolation (placeholders)Injecting dynamic values into translated sentences safely"putting the username inside the sentence" · "the variable slots"
  • right-to-left (RTL) layoutLayout mode for Arabic, Hebrew, Farsi scripts"flipping the whole UI backwards" · "Arabic mode"
  • bidirectional text (bidi)Mixing RTL and LTR runs in one string correctly"English words inside Arabic text look scrambled" · "bidi"
  • RTL layout mirroringReversing icons, padding, and direction for RTL locales"the arrows should point the other way" · "layout flipping"
  • logical propertiesCSS start/end instead of left/right, auto-flips for RTL"margin that knows about Arabic" · "inline-start stuff"
  • text expansionTranslations growing longer and breaking fixed-width layouts"German words blow up my buttons" · "text overflows after translating"
  • pseudo-localizationFake accented, lengthened strings to test i18n readiness"the fake language with weird characters" · "Ĥéļļö Ŵöŕļð test"
  • localization testingVerifying translated UI, formats, and layouts across target locales"checking the app in every language" · "QA pass for the translations"
  • locale fallback chainCascading to a parent locale when a translation is missing"if pt-BR is missing, use pt then English"
  • language negotiationPicking a locale from Accept-Language header or preference"auto-detecting the visitor's language"
  • locale routing (URL strategy)Subpath, subdomain, or ccTLD scheme per language"/es/ vs es.site.com" · "how to structure language URLs"
  • hreflangHTML/sitemap tag telling search engines a page's locale variants"telling Google which country version to show"
  • ECMAScript Internationalization API (Intl)Built-in JS formatting for dates, numbers, currency, lists"the native browser thing that formats numbers" · "Intl API"
  • locale-aware date/time formattingOrdering, separators, 12/24-hour per region"is 03/04 March or April" · "the 24-hour clock in Europe"
  • number formattingLocale rules for decimals, grouping separators, percentages, and signs"1,000.5 versus 1.000,5" · "how numbers look in other countries"
  • currency formatting & displaySymbol placement, separators, decimals per locale"1.000,50 € versus $1,000.50"
  • character encoding (UTF-8)Byte standard covering all scripts and emoji"why accents turn into question marks" · "mojibake fix"
  • TMS (translation management system)Platform routing strings to translators and back to code"the place translators work" · "the translation dashboard"
  • translation contextMetadata telling translators where a string appears"translators need to see the screen" · "screenshots and notes for translators"
  • terminology database (termbase)Locked list of brand and product terms never translated"words that must stay in English" · "the glossary"
  • address & name format varianceField order, honorifics, single-name users per country"some people don't have a last name" · "the postcode goes somewhere else"
  • language switcherVisible control listing available locales in their own names"the flag dropdown" · "the language picker in the footer"

Deeper in the field

  • string freeze Cutoff date after which UI copy can't change before release
  • segment The unit of translation, usually a sentence or string
  • fuzzy match TM suggestion that partially matches a new segment
  • XLIFF Interchange file format for exchanging translations with vendors
  • gettext / PO files Classic key-value translation format with plural support
  • content negotiation Server choosing a response variant from request headers
  • time zone handling (IANA tzdb) Storing UTC and rendering in the user's zone
  • non-Gregorian calendars Hijri, Hebrew, Japanese-era date systems
  • Unicode normalization (NFC/NFD) Canonical form so accented characters compare equal
  • grapheme cluster User-perceived character; correct unit for length and truncation
  • international phone number normalization (E.164) Canonical international storage format for phone numbers
  • units & measurement conversion Metric/imperial, paper sizes, temperature per locale
  • locale-specific imagery Swapping photos, colors, gestures that read differently
  • in-context editing Translating directly on the live rendered page
  • over-the-air (OTA) translation updates Shipping new strings without an app release
  • translation memory (TM) Reusable database of previously translated segments
  • CLDR Unicode's canonical data for formats, plurals, names, calendars
  • MT post-editing (MTPE) Human cleanup of machine-translated output
  • transcreation Rewriting marketing copy for cultural impact, not literally
  • locale-aware sorting (collation) Alphabetical ordering rules that differ per language
  • BCP 47 language tag Standard identifier combining language, script, region, and variants
  • linguistic QA (LQA) Review of translations for accuracy, fluency, consistency, and context
  • string concatenation Anti-pattern that blocks translators from reordering a full sentence
  • source language Original language content is written in before translation
  • grammatical gender Noun classes forcing adjective, pronoun, and article agreement
  • register and formality Formal versus informal address choices appropriate to each locale
  • bidi isolation Marks that stop embedded text from scrambling surrounding direction
  • locale data Structured regional conventions powering formatting and language behavior