Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Locale (computer software)
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== International standards == In standard C and C++, locale is defined in "categories" of {{tt|LC_COLLATE}} (text collation), {{tt|LC_CTYPE}} (character class), {{tt|LC_MONETARY}} (currency format), {{tt|LC_NUMERIC}} (number format), and {{tt|LC_TIME}} (time format). The special {{tt|LC_ALL}} category can be used to set all locale settings.<ref>{{cite web |title=LC_ALL, LC_COLLATE, LC_CTYPE, LC_MONETARY, LC_NUMERIC, LC_TIME - cppreference.com |url=https://en.cppreference.com/w/c/locale/LC_categories |website=en.cppreference.com}}</ref> 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 [[POSIX]] platforms such as [[Unix]], [[Linux]] and others, locale identifiers are defined in a way similar to the [[BCP 47]] definition of language tags, but the locale variant modifier is defined differently, and the [[character set]] is optionally included as a part of the identifier. The POSIX or "XPG" format is {{mono|<nowiki>[language[_territory][.codeset][@modifier]]</nowiki>}}. (For example, [[Australian English]] using the [[UTF-8]] encoding is {{mono|en_AU.UTF-8}}.)<ref>{{cite web |title=Environment Variables |url=https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html |website=pubs.opengroup.org}}</ref> Separately, [[ISO/IEC 15897]] describes a different form, {{mono|<nowiki>language_territory+audience+application,sponsor_version</nowiki>}}, though it's highly dubious whether it is used at all.<ref>{{cite web |title=ISO/IEC JTC1/SC22 N610 [draft ISO/IEC 15897:1998(E)] Information technology β Procedures for registration of cultural elements |url=https://www.open-std.org/jtc1/sc22/wg20/docs/n610.pdf |access-date=8 June 2023 |date=1998-11-17|quote=For Narrative Cultural Specifications and POSIX Locales the token identifier will be: 8_9+11+12,13_14}}</ref> <!-- The identifier format is documented with the environment variables, but how do we cite (e.g.) SUSv4 here? Also, this seems to be part of an "optional" feature. ~~~~ --> In the next example there is an output of command <code>locale</code> 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=
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)