views:

1544

answers:

8

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?

+18  A: 
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.

Hank Gay
Some other reasons to think of them separately: Internationalization QA and localization QA have different test cases, Internationalization is a one-time cost (more or less), and so the more languages you localize to, the higher your ROI. i18n is generally more costly than l10n to any one locale.
Mike Sickler
@Hank, @Mike, very helpful answers, thanks. So I was actually correct in looking at internationalization first. My goal is to make sure the application design will at least support multiple languages in the future, even if intiially I am just focusing on English.
Ash
+2  A: 

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.

mouviciel
A: 

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.

Guillaume
+7  A: 

Internationalization prepares your app for localization. So - using Unicode, moving strings to resource files, using the regional date time and currency formats, etc. are all part of internationalization.

When you wish to sell, eg., a Chinese version of your app, you'd then localize it by hiring a translator to build the zh-CN resource files.

Mark Brackett
+3  A: 

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.

Cade Roux
+2  A: 

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

Adam
A: 

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

+1  A: 

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