A locale, also called a software locale, identifies a set of language-related and regional conventions used by software. Locale-sensitive services use it to select behavior such as date formatting, number formatting or culturally appropriate text ordering. A locale identifier can specify a language, script, region and further options.[ref]
ICU User Guide by the Unicode Consortium. Locales and Resources, The Locale Concept and component fields; unicode-org.github.io/icu/userguide/locale/
An original date example separates meaning from presentation. Let a stored value have year2026, month3 and day4. A day/month/year pattern displays
04/03/2026, while a month/day/year pattern displays 03/04/2026. Both represent the same date under their declared patterns. The bare strings do not carry all the information needed to choose the interpretation without context.A program can pass the selected locale as a parameter to a formatting service instead of hard-coding every convention. Changing that parameter changes the presentation requested for the operation. It does not change the stored date's year, month and day, infer a user's nationality, or convert the character encoding of every string.[ref]
The distinction from encoding is especially useful. Two applications can both store text as UTF-8 while choosing different locale-sensitive display forms. Conversely, two different byte encodings can represent the same textual date. A test record should therefore identify the semantic value, locale selection, format options and relevant library/data version separately.
The Common Locale Data & Rules project supplies shared data for such services, and International Components for Unicode provides implementations using locale information. A default locale is a convenience for choosing behavior when the application does not supply an explicit choice; making the choice explicit improves reproducibility of an example.[ref]
ICU User Guide by the Unicode Consortium. Locales and Resources, Default Locales and Locales and Services
New to topics? Read the docs here!