Internationalization and localization make it possible to use CiviCRM in languages and cultural environments other than American English. This includes the menus, form labels, help texts, but also date formats, currency/number formats, address formats and supporting various alphabets (ex: alphabetical order of search results).
We will try to keep it non-technical, but if you use CiviCRM in another language you will often see these terms:
Under the hood, CiviCRM uses gettext to localize the text, and since there are a lot of strings in CiviCRM, the translations themselves are managed in a community called Transifex. Extensions can be translated as well, and follow the same principles.
Administrator guide: Using CiviCRM in your own language
This includes the installation of language files (civicrm-l10n.tar.gz), how to update those files between releases, the various language settings and performance tips.
Translations of CiviCRM (core and extensions) are managed in Transifex. is an online community of translators. In many ways, it is the "github" of translation. You can use the web interface to join a translation team (or create a new one) and translate the strings or improve existing translations from there.
When writing new CiviCRM code or an extension, developers should organize their code in a way which is amenable to internationalization.