Dimensions of globalization

Traditionally, software solves the problem of operation in a global environment along two dimensions that intersect:

Language
Writing system and words to use for text in the user interface.
Country/region
Formatting of dates, times, numbers, and monetary values that users enter and retrieve.

The intersection of these two dimensions, language with country/region, is known as locale.

Venn diagram of the intersection of language and country/region

Traditionally, applications let you select from a preconfigured set of locales. Java embodies this globalization dichotomy in Java locale codes. A Java locale code combines an ISO 639-1 two-letter language code with an ISO 3166-1 two-letter country/region code.

For example, the Java locale code for U.S. English is en-US. A locale defines the language of text in the user interface as used in a specific country or region of the world. In addition, the locale defines the formats for dates, times, numbers, and monetary amounts as used in that same country or region.