Localization and internationalization, what's the difference?

Viewed 49664

I was going to ask a question about preparing a desktop application to support multiple languages on the UI.

In my search for existing questions on the topic I was thinking the word "International", so I selected the Internationalization tag and read through some matching questions.

Eventually I realized I should probably be looking under questions tagged Localization instead. However it appears I'm not alone in getting these two terms mixed up.

So, what are they key differences between Localization and Internationalization?

Also, is a clear distinction between them really that important?

15 Answers
Internationalization (i18n)
the process of changing your software so that it isn't hardwired to one language/locale/culture.
Localization (l10n)
the process of adding the appropriate resources to your software so that a particular language/locale is supported. It's bigger in scope than just this Wikipedia entry, but it's a good start.


The value of distinguishing between them is that (theoretically) once your program goes through the i18n process, you can then iterate many l10n processes as you need them; also, it's nice to be precise with language.

According to Apple:

Internationalization is the process of designing and building an application to facilitate localization. Localization, in turn, is the cultural and linguistic adaptation of an internationalized application to two or more culturally-distinct markets.

Internationalization prepares your application for localization. For example, you might encode characters stored in your database in Unicode (utf8mb4 instead of latin1), moving strings to resource files, enabling the use of date, time and currency formats, etc.

When you wish to sell, for example, a Chinese version of your app, you'd then localize it by hiring a translator to build the zh-CN resource files, and use a new date/time/currency format.

L10n can sometimes show where your i18n has failed - for instance, where your dictionaries have a single entry for a word which is used as a noun and a verb in English which doesn't translate to the same word in another language, or UI elements/design are unsuitable for a culture (L/R orientation).

So l10n "generally" happens after i18n, but can feed back into your i18n and require further redesign, so you cannot consider your app fully internationalized until you've done a few localizations.

Globalization (G11n): is the process of developing and marketing multilingual software products to a global market.

The development of multilingual software currently goes through two phases: the first phase is internationalization, and the second phase is localization.

Internationalization (I18n): is the process of generalizing a product so that it can handle multiple languages and cultural conventions without the need for re-design (i.e. language & culture neutral).

Localization (L10n): is the process of taking a product and making it linguistically and culturally appropriate to the target locale (country/region and language) where it will be used and sold (i.e. language & culture specific).

There are a few very good answers here, so I won't recycle them. However at some point, typically between internationalization testing and localization linguistic testing, internationalization and localization tend to overlap. One person mentions l10n feeding back to internationalization, but if you are doing quality i18n testing, and creating pseudo-localized content, then iterating on development issues during localization should be the exception, not the rule. Interface resizing, and particularly adapting pages to support bi-directional languages like Arabic and Hebrew also tend to blend both localization issues and internationalization engineering.

Suffice it to say, Internationalization involves making changes to the source to support any locale based on requirements. If internationalization is done well...

...Localization involves the adaptation of the content and some levels of presentation (e.g. a bold tag) so that it best addresses needs of specific targeted markets (locales).

Lots of articles & white papers for reference here: http://www.lingoport.com/software-internationalization-articles

I feel localization can go without internationalization but.. internationalization with localization should not be done...

There are many definitions of i18n and l10n. The one I use are :

internationalization (i18n) : language specific adaptation of your application (translation)

localization (l10n) : locale specific adaptation of your application (money, number format, date format ...).

For example, we can have the same language for an application distributed in France and in Switzerland (we both speak french, at least in some parts of Switzerland), but we will still need some adaptation to change EUR to CHF.

Related