Saturday, February 09, 2013

i18n vs l10n

I always had a trouble how to explain this subject to other people. That's why I've decided to collect the main definitions (and explanations) of internationalization and localization in one place.

W3C explain this concept pretty well:
Internationalization is the design and development of a product, application or document content that enables easy localization for target audiences that vary in culture, region, or language. 
 Localization refers to the adaptation of a product, application or document content to meet the language, cultural and other requirements of a specific target market (a locale).

Let's paraphrase these definitions based on Apple guides:
  • Internationalization (i18n) is the process of designing and building an application to facilitate localization. The main concern is that application can be adapted to various languages and regions without engineering changes.
  • Localization (l10n) is the cultural and linguistic adaptation of an internationalized application to two or more culturally-distinct markets

The primary task of localization is translating the user interface elements and documentation. Localization involves not only changing the language interaction, but also other relevant changes such as display of numbers, dates, currency, and so on. Other types of data, such as sounds and images, may require localization if they are culturally sensitive. The better internationalized an application is, the easier it is to localize it for a particular language and character encoding scheme. (

Definitions from Mozilla Internationalization & Localization Guidelines:
(a.k.a. Globalization, a.k.a. Enabling)
Designing and developing a software product to function in multiple locales. This process involves identifying the locales that must be supported, designing features which support those locales, and writing code that functions equally well in any of the supported locales.
Localization Modifying or adapting a software product to fit the requirements of a particular locale. This process includes (but may not be limited to) translating the user interface, documentation and packaging, changing dialog box geometries, customizing features (if necessary), and testing the translated product to ensure that it still works (at least as well as the original).
Localizability The degree to which a software product can be localized. Localizable products separate data from code, correctly display the target language and function properly after being localized.
i18n Acronym for "internationalization" ("i" + 18 letters + "n"; lower case i is used to distinguish it from the numeral 1 (one)).
L10n Acronym for "localization" ("L" + 10 letters + "n"; upper case L is used to distinguish it from the numeral 1 (one)).
L12y Acronym for "localizability" ("L" + 12 letters + "y"; upper case L is used to distinguish it from the numeral 1 (one)).
Locale A set of conventions affected or determined by human language and customs, as defined within a particular geo-political region. These conventions include (but are not necessarily limited to) the written language, formats for dates, numbers and currency, sorting orders, etc.
Resource 1. Any part of a program which can appear to the user or be changed or configured by the user.
2. Any piece of the program's data, as opposed to its code.
Core product The language independent portion of a software product (as distinct from any particular localized version of that product - including the English language version). Sometimes, however, this term is used to refer to the English product as opposed to other localizations.