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

LocalizationInternationalizationGlobalization

Localization Problem Overview


> Possible Duplicate:
> Localization and internationalization, what’s the difference?

I18n/L10n/G11n all equal localization to me, but people keep making distinctions among these, especially in corporate and marketing, but I'm failing to see how these 3 tasks, from the programmer's point of view aren't the same thing, are there special requirements behind each one of these? What is some honest programmer to programmer explanations of these terms that doesn't involve global markets, in other words what's the nitty-gritty differences behind these three terms, when translated to developing (coding) software?

thanks!

Localization Solutions


Solution 1 - Localization

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.

Solution 2 - Localization

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.

Solution 3 - Localization

Just think about it in terms of McDonald's (bear with me).

McDonald's is internationalized because it can be localized. You can't easily localize, say, an American flag shop unless you expanded your company to make all the countries' flags.

McDonald's is localized because when you go to the McDonald's in Japan, there is very different food there than there is in, say, the USA. It's also all written in Japanese. This means they have adjusted their product to the language and culture of Japan.


To me, localization is when you make specific products for different cultures. For example: www.google.com and www.google.co.nz. They are both Google. One is for the US (or generic) and one is for New Zealand. They are both in English... but they are localized to the culture of their respective audience.

Does that make sense?

Solution 4 - Localization

I don't know about the "G" one, but for me:

  • I18n means it can be done
  • L10n means it has been done

Solution 5 - Localization

i18n is mostly a software engineering work; you have to deal with code. The simplest concept is moving hard code Strings out of the source code so as to reduce the interaction between translating String seen by the user and moving them back as resource files or database values or whatever depending on your i18n framework of choice. In i18n, you deal with logic, UI, databases, Left to Right scripts, etc. so as to get a code base that is fairly orthogonal to locale (language/countries) specificities. You may have strategies to deal with business logic specific to a country (i.e. taxes). You probably handle formatting simple items, like date/time, currency, etc. and maybe complex ones (addresses, imperial calendar) which might require some design in terms of data base, logic, UI, etc. Kinda depends on your target locales.

L10n should come in afterwards and is not the work of software engineers. For the most part, it is "localization" companies, with translators, who do that part of the work.

i18n and L10n are both necessary components of a G11n strategy. The planning, QA, etc. need to take into account both sides, as there are integration issues from one world to the other.

Hope that helps.

Solution 6 - Localization

While I'm not going to attempt to answer your question about the impact on coding, due to a lack of experience in that arena, I think you will find the following Wikipedia article of some use in differentiating between the 3 terms.

http://en.wikipedia.org/wiki/I18n

Solution 7 - Localization

I have an internationalized product. No translation has been done, but the strings are all externalized, so if we had a desire to ship the product localized for a specific country we could get the files translated, have the product tested, and ship it for use natively in that country.

For now the fully internationalized product is all english, but the coding is all done. If someone were to attempt to check in code that was not proper the reviewer could rightly reject it on the grounds that it is not internationalized, and would render the product unable to be fully localized.

But since no testing has been done then it really is not internationalized fully yet ...

Solution 8 - Localization

As per my practical experiance:

I18N: Suppose your OS is English(US),You can just change the OS language to Japanese/Chineese and can Install application in either Japanese/Chineese support.

L10N:Your OS must be in the same locale as the application.eg on Japanese OS you can install Japanese language supported application.Here every thing will be in the same lacale.

G11N: Its a naming conversion given by IBM/Sun Microsystem.It covers both I18N & L10N based on type of all setting.

Correct me if I am wrong.

Thanks Vikas

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionRobert GouldView Question on Stackoverflow
Solution 1 - LocalizationSteven LyonsView Answer on Stackoverflow
Solution 2 - LocalizationArnold SpenceView Answer on Stackoverflow
Solution 3 - LocalizationKyleFarrisView Answer on Stackoverflow
Solution 4 - Localization1800 INFORMATIONView Answer on Stackoverflow
Solution 5 - LocalizationOlivier LiboubanView Answer on Stackoverflow
Solution 6 - LocalizationJordan S. JonesView Answer on Stackoverflow
Solution 7 - LocalizationOwenView Answer on Stackoverflow
Solution 8 - LocalizationVikas KumarView Answer on Stackoverflow