What is the actual differences between I18n/L10n/G11n and specifically what does each mean for development? [duplicate]

Here's an article from the W3C: Localization vs. Internationalization

The short answer from them seems to be:

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").

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.

So, it seems that internationalization is making the product able to be localized to a specific market. According to the W3C, globalization is another term for internationalization.

Personally, I use them mostly interchangeably but check out the article for more specificity of what each entails.


I18n - Internationalization - Providing some kind of framework so that you can easily swap out strings, graphics, sounds and other resources and generally handling different conventions of communication.

L10n - Localization - The process of creating a bunch of strings, graphics, sounds etc. so that you can target a specific nationality, language or region.

G11n - Globalization - Doing both Internationalization and Localization steps :)

There are many methods and frameworks that support the 'strings' part of these processes and they usually involve using unicode. The other parts are usually handled by creating resource files with a bunch of graphics and sounds in them. Depending on the framework you use, the strings may be stored here too. I find Qt has an excellent system for handling strings for I18n.