Introduction
A "Locale" is an identifier used to get language, culture, or
regionally-specific behavior from an API. PHP locales are organized and
identified the same way that the CLDR locales used by ICU (and many
vendors of Unix-like operating systems, the Mac, Java, and so forth) use.
Locales are identified using RFC 4646 language tags (which use hyphen, not
underscore) in addition to the more traditional underscore-using
identifiers. Unless otherwise noted the functions in this class are
tolerant of both formats.
Examples of identifiers include:
- en-US (English, United States)
- zh-Hant-TW (Chinese, Traditional Script, Taiwan)
- fr-CA, fr-FR (French for Canada and France respectively)
The Locale class (and related procedural functions) are used to interact
with locale identifiers--to verify that an ID is well-formed, valid, etc.
The extensions used by CLDR in UAX #35 (and inherited by ICU) are valid
and used wherever they would be in ICU normally.
Locales cannot be instantiated as objects. All of the functions/methods
provided are static.
The null or empty string obtains the "root" locale. The "root" locale is
equivalent to "en_US_POSIX" in CLDR. Language tags (and thus locale
identifiers) are case insensitive. There exists a canonicalization
function to make case match the specification.