What Is i18n? Internationalization, Explained
i18n is shorthand for internationalization: the 18 counts the letters between the i and the n. It's the practice of building software so it can support different languages, regions, and formats without changing the code later.
Internationalization is groundwork, not translation. It covers externalizing every user-facing string instead of hard-coding it, and handling Unicode so names like Nguyễn and Müller survive intact. It also means formatting dates, numbers, and currencies per locale (1,000.50 in New York is 1.000,50 in Madrid), building UI that tolerates German words half again as long as their English originals, and supporting layouts that flip right-to-left for Arabic and Hebrew. Plural rules are their own trap: many languages have more forms than English's two.
Its counterpart is l10n, localization: the work of actually adapting the product for one specific market, translation included. i18n makes l10n possible without surgery.
The cost asymmetry is the whole story. Marking strings for translation while you build costs almost nothing. Retrofitting a finished app that has English baked into a thousand templates is a project of its own, and it's the reason so many products stay single-language long after their market stopped being.
Why it matters for custom software
We build everything multilingual-ready from day one, which is i18n in practice: strings externalized, locale-aware formatting, and a place for the translation pipeline to plug in. Adding French later becomes a translation job, not a rebuild.