What is the actual differences between I18n/L10n/G

2019-03-07 20:47发布

问题:

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!

回答1:

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.



回答2:

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.



回答3:

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?



回答4:

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

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


回答5:

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.



回答6:

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



回答7:

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



回答8:

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