Internationalization is the process of making your software easy to adapt to different languages or regions.
Localization is the process of adapting your software to a different language or region.
Localization is often abbreviated by l10n. l10n includes translation, adjusting currencies ($, €, £, ¥, …), systems of measurement (metric vs imperial), adjusting time zones. The language change might make a lot of other changes necessary. For example, it can very well be that the layout does not work any longer. It might mean that you need to get more data about the user because there are other ways to address the user.
Localization is not defined by the language
You might be tempted to use the language as an identifier for the locale. That doesn’t work:
- English: The UK has calendars that start on Monday, but the USA have calendars starting on Sunday. The UK has Pounds, the US has Dollars.
- German: Switzerland has the Swiss franc, Germany has the Euro.
Localization is not defined by the country
Also the language is not defined by the country. French is the official language of Quebec, but the rest of Canada speaks English.