Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Localization and internationalization, what's the difference?

People also ask

What is the correct difference between internationalization and localization?

Internationalization is the process of designing a software application so that it can be adapted to various languages and regions without engineering changes. Localization is the process of adapting internationalized software for a specific region or language by translating text and adding locale-specific components.

What is an example of internationalization?

Products intended for use by speakers of multiple languages typically undergo an internationalization process. For example, IKEA internationalizes the assembly instructions for its furniture by using only diagrams and illustrations, without including any text that would need to be translated.

What is the difference between localization and globalization?

Localization is the adaptation of a resource or product to fit the demands of one specific culture or locale, while globalization is the adaption of a particular resource to fit the demands of multiple cultures and locales.

What do you mean by localization?

Localization is the adaptation of a product or service to meet the needs of a particular language, culture or desired population's "look-and-feel." A successfully localized service or product is one that appears to have been developed within the local culture.


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.


According to Wikipedia

Internationalization is the process of designing a software application so that it can potentially be adapted to various languages and regions without engineering changes.

Localization is the process of adapting internationalized software for a specific region or language by adding locale-specific components and translating text.

Also, Localization (which is potentially performed multiple times, for different locales) uses the infrastructure or flexibility provided by internationalization (which is ideally performed only once, or as an integral part of ongoing development).


Lot of answers, lot of correct information, but my answer is little bit another point of view.

Internationalization - it is when developer does not have in code direct messages/error messages/buttons names/labels captions/etc in certain language but have a key which is passed to translation function, and translation function according to current user's locale will return final text in english/france/etc...
Translation function works with storage (db/files/associative array/etc).
Storage contains keys which is ussed in coode, and values, which is texts in certain language which application supports.

Localization - it is process of adding new values in new language (for example spain) appropriate to keys into storage without involving developer in this process.

For example, we have storage:

key   | english    | italian           |
------+------------+-------------------+
title | Welcome    | Benvenuto         |
agree | I agree    | Sono d'accordo    |
thank | Thank you  | Grazie            |

Internationalization it is using in code something like confirm(t(agree)); instead of confirm("I agree"); or confirm("Sono d'accordo");
Localization - it is add new locale to our storage, like:

key   | english    | italian           | spanish          |
------+------------+-------------------+------------------+
title | Welcome    | Benvenuto         | Bienvenido       |
agree | I agree    | Sono d'accordo    | Estoy de acuerdo |
thank | Thank you  | Grazie            | Gracias          |

and here developer don't need update code, translation function will correctly carry appropriate texts.