It seems both the LANG and LANGUAGE environment variable are used by some programs to determine their user interface language.
What are the exact semantics of these variables and where can I read about their correct usage? The manpage for locale(1) only mentions the LC_* family of environment variables. Additionally there is also an LC_ALL variable commonly in place which isn't described there either.
Best Answer
LANG
contain the setting for all categories that are not directly set by aLC_*
variable.LC_ALL
is used to override everyLC_*
andLANG
andLANGUAGE
. It should not be set in a normal user environment, but can be useful when you are writing a script that depend on the precise output of an internationalized command.LANGUAGE
is used to set messages languages (asLC_MESSAGES
) to a multi-valued value, e.g., setting it tofr:de:en
will use French messages where they exist; if not, it will use German messages, and will fall back to English if neither German nor French messages are available.