Reading
man locale
I figure that that locale displays information about the "current locale" or a list of all available locales.
In addition, running
$ locale
gives...
LANG=
LC_COLLATE="C"
LC_CTYPE="C"
LC_MESSAGES="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_ALL=
However, neither the man nor running it actually sheds a light on what these environment variables do. I would like to ask specifically what these environment variables are needed for or used for? (say for example in the context of a software running on this unix/linux OS that has these environment variables)
The Question: What does that mean in the context of a software that is running on the OS with these locales?
Locale is basically a set of environmental variables that defines the user's language, region, and any special variant preferences that the user wants to see in their Linux interface.
Information about linguistic, cultural, and technological conventions for use in formatting data for presentation.
The locale command displays information about the current locale, or all locales, on standard output. When invoked without arguments, locale displays the current locale settings for each locale category (see locale(5)), based on the settings of the environment variables that control the locale (see locale(7)).
You can use the command locale to show your current locale. The command locale -a displays all the locales that are currently installed on the machine. Make sure that the locale you select for LANG and LC_ALL is in the list that is returned by the command locale -a.
Oh, the man page (man 1 locale
) does:
LC_CTYPE
Character classification and case conversion.
LC_COLLATE
Collation order.
LC_TIME
Date and time formats.
LC_NUMERIC
Non-monetary numeric formats.
LC_MONETARY
Monetary formats.
LC_MESSAGES
Formats of informative and diagnostic messages and interactive responses.
Perhaps, you had a look for the 'locale' manpage in the wrong section? These are the standard sections (see man man
)
0 Header files (usually found in /usr/include)
1 Executable programs or shell commands
2 System calls (functions provided by the kernel)
3 Library calls (functions within program libraries)
4 Special files (usually found in /dev)
5 File formats and conventions eg /etc/passwd
6 Games
7 Miscellaneous (including macro packages and conven-
tions), e.g. man(7), groff(7)
8 System administration commands (usually only for root)
9 Kernel routines [Non standard]
so, for the locale
binary, you have to look in section 1
: man 1 locale
. To fully answer your question, I cite the description part of locale's man page:
DESCRIPTION
The locale utility shall write information about the current locale
environment, or all public locales, to the standard output. For the
purposes of this section, a public locale is one provided by the imple-
mentation that is accessible to the application.
When locale is invoked without any arguments, it shall summarize the
current locale environment for each locale category as determined by
the settings of the environment variables defined in the Base Defini-
tions volume of IEEE Std 1003.1-2001, Chapter 7, Locale.
When invoked with operands, it shall write values that have been
assigned to the keywords in the locale categories, as follows:
* Specifying a keyword name shall select the named keyword and the
category containing that keyword.
* Specifying a category name shall select the named category and all
keywords in that category.
Samples (LC_TIME
and LC_MESSAGES
):
$ export LC_TIME='fr_FR.UTF-8' #french time
$ date
mar. août 30 18:41:07 CEST 2011
$ export LC_TIME='de_DE.UTF-8' #german time
$ date
Di 30. Aug 18:41:12 CEST 2011 #english time
$ export LC_TIME='en_US.UTF-8'
$ date
Tue Aug 30 18:41:17 CEST 2011
$ rm NON-EXIST
rm: cannot remove `NON-EXIST': No such file or directory
$ export LC_TIME='de_DE.UTF-8' #german time, but english MESSAGES
$ rm NON-EXIST
rm: cannot remove `NON-EXIST': No such file or directory
$ export LC_MESSAGES='de_DE.UTF-8' #german messages
$ rm NON-EXIST
rm: cannot remove `NON-EXIST': Datei oder Verzeichnis nicht gefunden
LC_COLLATE
is for sorting information according to a language. LC_MONETARY
is the format for currency (US: $1.24
, europe: 1.24 €
)
Locale governs a lot of things, such as:
en_US.UTF-8
, or some other classic encoding)The C
locale is the "default" locale. It is generally advisable to be more specific, and run as something UTF-8 enabled on Linux.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With