Refers to the process of designing programs for the potential use of any locale. This process is usually done by software developers. Internationalization includes marking text (such as UI elements and error messages) for future translation, abstracting the display of dates and times so that different local standards may be observed, providing support for differing time zones, and generally making sure that the code contains no assumptions about the location of its users. You'll often see internationalization abbreviated I18N. (The 18 refers to the number of letters omitted between the initial I and the terminal N.)
Refers to the process of actually translating an internationalized program for use in a particular locale. This work is usually done by translators. You'll sometimes see localization abbreviated as L10N.
Here are some other terms that will help us to handle a common language: