Internationalization, also known as i18n, is the process of designing and building a product so that it can be easily adapted to specific languages and cultures. The product can be an application, online service, line of merchandise, document or book, or anything else that will target audiences from different cultures who speak different languages. The term "i18n" is an abbreviation where 18 is the number of letters between the words opening "i" and closing "n".
Internationalization provides a foundation for more effectively localizing a product for multiple target audiences. It makes it possible to deliver a product more quickly to these audiences because it streamlines the localization process. The main goal of internationalizing software is to ensure that the source code remains independent of any one culture or language. The product can be more easily localized for each target audience without updating the source code in each case.
Internationalization involves capabilities like separating locale and language-dependent elements from the core code or content so that the code can support the requirements of a broader, global audience. It enables support for delivering a user experience in multiple languages, regional preferences, and cultural contexts. Internationalization is product development-focused and should not be confused with localization, which involves translating and adapting content to cultures.
Supporting i18n makes the localization process easier and more efficient, saving time and reducing costs. It also means that every piece of text should be translatable, and that there shouldn’t be any code that relies on text. Internationalization is typically a one-time cost, and the more languages and cultures a product is localized to, the greater the return on investment for internationalization.