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