Internationalization and localization are two sides of the same coin. Internationalization is the process of developing software so that it can be used in a variety of locations. Localization is the process of modifying an application for use in a specific location. When you internationalize software, you are making it portable; when you localize software, you are actually performing a port.
In the PostgreSQL world, the topics of internationalization and localization are concerned with the following:
Viewing PostgreSQL- generated messages in the language of your choice
Viewing PostgreSQL- generated messages in the character set of your choice
Viewing user data in the character set of your choice
Getting the correct results when PostgreSQL returns data in sorted order
Getting the correct results when PostgreSQL needs to classify characters into categories such as uppercase, punctuation, and so on
We can separate these issues into two broad categories: locales and character sets.