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
Lets understand locale first
locale - a set of parameters that defines the user's language, region and any special variant preferences that the user wants to see in their user interface. Usually a locale identifier consists of at least a language identifier and a region identifier.
i18n - Designing and developing software to support multiple locales.
l10n - This is possible only when your software supports i18n. But l10n makes sure, that language, date-format, currency formats etc are shown in context for a specific locale.
For example,
#1. June 3, 1977 will be translated to Spanish as 3 de junio de 1977.
#2. Currency in some countries are separated by '.' vs ','
#3. Show respective currency symbol based on locale's country
#1, #2 and #3 are use-cases for localization.
If the software is designed to support #1 OR #2 OR #3 based on user-locale, then product is l10n enabled.
If it supports multiple locales then its i18n enabled.