Software can be written in a way that allows it to run in any part of the world and provide its user interface as the person there would expect.
That is, software is written only once, but in a particular way that allows it to automatically display according to the local standards at run time.
- If the local standard is that text should flow from the right to the left, it does so.
- If the local standard is that text should flow from the left to the right, it flows from the left to right.
- Display numbers in the local format ("4,0" in Europe, but "4.0" in the US).
Importantly, this happens automatically at run time without the developer having to do anything special (other than internationalization).
Localization refers to additional steps taken that complete software for a specific location (called a "locale", which is discussed later).
The prime example of localization work is translation. Most software displays messages to the user that must be translated. Translating software is the biggest (but not the only) part of localization.
"I18N" and "L10N"
- "I18N" is a common abbreviation for "internationalization". The "18" refers to the number of letters between the initial "I" and the final "N".
- "L10N" is a common abbreviation for "localization". The "10" refers to the number of letters between the initial "L" and the final "N".
Other aspects of tailoring software to the run-time locale include:
- Paper size
- Measurement system
- Currency symbol
- And more
Whether these are "i18n" or "l10n" is sometimes discussed. One way of looking at it is:
- Ubuntu is internationalized
- Localized data exists that enables it to run appropriately in the world's locales.
Note: When you install a language in Ubuntu through the Language Support application, it installs the localization data needed.