Overview
Internationalization (I18n) and localization (L10n) in software development are two important concepts that involve designing and developing software products that are adapted to different languages, cultures, and regions.
The term “internationalization” is often abbreviated as “I18n” because there are 18 letters between the “I” and the “n” in the word. Similarly, the term “localization” is often abbreviated as “L10n” because there are 10 letters between the “L” and the “n”.
While I18n refers to the process of designing software products for global audiences, and L10n refers to the process of adapting software products for specific locales or regions, these concepts are closely related.
History
In the early days of I18n, software developers would often create separate versions of software for different languages and regions. It was a time-consuming process.
The concept of I18n libraries emerged in 1980s. One of the earliest I18n guideline was the X/Open Portability Guide, by X/Open group (the Open Group for Unix Systems), which included a section on internationalization where it provided guidelines for creating software that could be easily adapted to different languages and regions. One of the recommendations it covered is a modular approach to software design, so that different components of the interface to be easily localized for different languages and regions.
Common I18n Components
An I18n system often includes the following components:
- character encoding
- language support
- date and time formatting
- currency and number formatting
- user interface design
- culturally-specific references and norms
- regional regulations
Different organizations and projects could have different specs on what their I18n guideline / design should cover. Here are a few modern references and applications:
- GNU gettext utilities
- i18next JavaScript Internationalization Framework
- Docusaurus i18n system
- Microsoft Learn - Software Internationalization
- Google Internationalization (i18n) - Open Source Libraries and APIs
- Apple Developer - Localization
Final Words
To recap, Internationalization (I18n) and Localization (L10n) and two closely related concepts in modern software development. They are important considerations for software products built for global audiences. The specific strategy for I18n and L10n will depend on the needs and requirements of the software product, as well as the target markets and user base.