What is the difference between Internationalization and Localization?

Joe Sam Shirah

Internationalization involves writing and designing an application so that it can be used with different languages, date, time, currency and other values without software modification.

Localization involves writing and designing an application capable of dealing with a specific region, country or language. In a sense, every app written for a specific area is localized. Usually, though, real localization is achieved by core code that accesses locale, location, political or other specific components and modules along with translating text.

A tax or accounting package that deals with, say, the U.S., Canada, Mexico and Brazil would need to be i18n'ed so that displays, reports and values would not have to be specific for each country, but also l10n'ed to handle different accounting and reporting procedures and taxes.