Locale (computer software)
In computing, a locale is a set of parameters that defines the user's language, region and any special variant preferences that the user wants to see in their user interface. Usually a locale identifier consists of at least a language code and a country/region code. Locale is an important aspect of
General locale settings
These settings usually include the following display (output) format settings:
- Number format setting (LC_NUMERIC, C/C++)
- Character classification, case conversion settings (LC_CTYPE, C/C++)
- Date-time format setting (LC_TIME, C/C++)
- String collation setting (LC_COLLATE, C/C++)
- Currency format setting (LC_MONETARY, C/C++)
- Paper size setting (LC_PAPER, ISO 30112)
- Color setting
- UI font setting (especially for CJKVlanguage)
The locale settings are about formatting output given a locale. So, the time zone information and daylight saving time are not usually part of the locale settings. Less usual is the input format setting, which is mostly defined on a per application basis.
Programming and markup language support
In these environments,
and other (nowadays)
International standards
In standard C and C++, locale is defined in "categories" of LC_COLLATE (text collation), LC_CTYPE (character class), LC_MONETARY (currency format), LC_NUMERIC (number format), and LC_TIME (time format). The special LC_ALL category can be used to set all locale settings.[1]
There is no standard locale names associated with C and C++ standards besides a "minimal locale" name "C", although the POSIX format is a commonly-used baseline.
POSIX platforms
On
In the next example there is an output of command locale
for Czech language (cs), Czech Republic (CZ) with explicit UTF-8 encoding:
$ locale LANG=cs_CZ.UTF-8 LC_CTYPE="cs_CZ.UTF-8" LC_NUMERIC="cs_CZ.UTF-8" LC_TIME="cs_CZ.UTF-8" LC_COLLATE="cs_CZ.UTF-8" LC_MONETARY="cs_CZ.UTF-8" LC_MESSAGES="cs_CZ.UTF-8" LC_PAPER="cs_CZ.UTF-8" LC_NAME="cs_CZ.UTF-8" LC_ADDRESS="cs_CZ.UTF-8" LC_TELEPHONE="cs_CZ.UTF-8" LC_MEASUREMENT="cs_CZ.UTF-8" LC_IDENTIFICATION="cs_CZ.UTF-8" LC_ALL=
Specifics for Microsoft platforms
This section needs to be updated.(June 2016) |
Windows uses specific language and territory strings. The locale identifier (LCID) for unmanaged code on Microsoft Windows is a number such as 1033 for English (United States), or 2057 for English (United Kingdom), or 1041 for Japanese (Japan). These numbers consist of a language code (lower 10 bits) and a culture code (upper bits), and are therefore often written in hexadecimal notation, such as 0x0409, 0x0809 or 0x0411.
Starting with Windows Vista, new functions
A POSIX-like locale name format of language[_country-region[.code-page]] is available in the UCRT (Universal C Run Time) of Windows 10 and 11.[6]
See also
- Internationalization and localization
- ISO 639 language codes
- region codes
- script codes
- IETF language tag
- C localization functions
- CCSID
- Code page
- Common Locale Data Repository
- Date and time representation by country
- AppLocale
References
- ^ "LC_ALL, LC_COLLATE, LC_CTYPE, LC_MONETARY, LC_NUMERIC, LC_TIME - cppreference.com". en.cppreference.com.
- ^ "Environment Variables". pubs.opengroup.org.
- ^ "ISO/IEC JTC1/SC22 N610 [draft ISO/IEC 15897:1998(E)] Information technology — Procedures for registration of cultural elements" (PDF). 1998-11-17. Retrieved 8 June 2023.
For Narrative Cultural Specifications and POSIX Locales the token identifier will be: 8_9+11+12,13_14
- ^ "DownlevelGetLocaleScripts function (Windows)". MSDN. Microsoft. Retrieved 2017-12-11.
- ^ "Locale Names (Windows)". MSDN. Microsoft. Retrieved 2017-12-11.
- ^ "Locale Names, Languages, and Country-Region Strings". learn.microsoft.com. 19 October 2022.
External links
This article's use of external links may not follow Wikipedia's policies or guidelines. (September 2019) |
- BCP 47
- Language Subtag Registry
- Common Locale Data Repository
java.util.Locale
Javadoc API documentation- Locale and Language information from Microsoft
- MS-LCID: Windows Language Code Identifier (LCID) Reference from Microsoft
- Microsoft LCID list
- Microsoft LCID chart with decimal equivalents
- POSIX Environment Variables
- Low Level Technical details on defining a POSIX locale
- ICU Locale Explorer
- Debian Wiki on Locales
- Article "The Standard C++ Locale" by Nathan C. Myers
- locale(7): Description of multi-language support - Linux man page
- Apache C++ Standard Library Locale User's Guide
- Sort order charts for various operating system locales and database collations
- NATSPEC Library
- Description of locale-related UNIX environment variables in Debian Linux Reference Manual
- Guides to locales and locale creation on various platforms