Internationalization is a pre-requisite localization. It consists in separating, in the source code of a program, what is independent of language and culture of what is dependent (usually in files called translation tables). But internationalization does not require a single work on text messages. It is also sometimes possible to change the color codes (whose meaning can change depending on the crop), graphics (including the names of icons, some icons may also contain the written text to be translated), the format of dates or numbers, the writing direction (from right to left in Arabic, for example), the size of the graphic elements (German text is longer than in English, which can modify layout, etc.) including to give the words the plural in accordance with a number.
Internationalization is therefore all the technical mechanisms that enable the end user to select the interface language and achieve a viable result, linguistically speaking. However, it may not be enough to treat “any language”, because the program uses a limited set of characters, or some special fonts, or because the user does not have good keyboards for data entry in this or that language. Migration or the inclusion of a wider set of characters may be particularly necessary to complete internationalization.
Extensive possibilities are offered, first in the ISO 2022 family, and secondly in unicode form, especially with UTF-8/UTF-16. This stage, more or less independent of internationalization (it can be done at the same time , before or after) is called “multilingualization.” The terms are often written in abbreviated form i18n (18 refers to the number letter between the first i and the last n of the word “internationalization”, invented by Digital Equipment Corporation in the early use 1970 and 1980) and L10n for the word “localization “, due to the length of words.
Some companies, such as IBM and Sun Microsystems, use the term “globalization” to define the combination of internationalization and localization.
Microsoft defines internationalization as a combination of the English expression “World-Readiness” and localization. World-readiness is a task for the developer, which allows to use a product with many writing characters and many cultures (globalization) while separating the resources of the user interface in a localizable file (abbreviated L12y).
This concept is also known as “NLS” (“National Language Support” or “Native Language Support”).
Translated and adapted from Wikipedia.