$LANGUAGE is a GNU extension that is probably worth supporting, since it
allows specifiying an order of languages.
https://bugs.freedesktop.org/show_bug.cgi?id=40510
<para>Note that the kernel command line options
<varname>locale.LANG=</varname>,
<para>Note that the kernel command line options
<varname>locale.LANG=</varname>,
+ <varname>locale.LANGUAGE=</varname>,
<varname>locale.LC_CTYPE=</varname>,
<varname>locale.LC_NUMERIC=</varname>,
<varname>locale.LC_TIME=</varname>,
<varname>locale.LC_CTYPE=</varname>,
<varname>locale.LC_NUMERIC=</varname>,
<varname>locale.LC_TIME=</varname>,
<para>The following locale settings may be set using
<filename>/etc/locale.conf</filename>:
<varname>LANG=</varname>,
<para>The following locale settings may be set using
<filename>/etc/locale.conf</filename>:
<varname>LANG=</varname>,
+ <varname>LANGUAGE=</varname>,
<varname>LC_CTYPE=</varname>,
<varname>LC_NUMERIC=</varname>,
<varname>LC_TIME=</varname>,
<varname>LC_CTYPE=</varname>,
<varname>LC_NUMERIC=</varname>,
<varname>LC_TIME=</varname>,
* using LANG instead. */
VARIABLE_LANG,
* using LANG instead. */
VARIABLE_LANG,
VARIABLE_LC_CTYPE,
VARIABLE_LC_NUMERIC,
VARIABLE_LC_TIME,
VARIABLE_LC_CTYPE,
VARIABLE_LC_NUMERIC,
VARIABLE_LC_TIME,
static const char * const variable_names[_VARIABLE_MAX] = {
[VARIABLE_LANG] = "LANG",
static const char * const variable_names[_VARIABLE_MAX] = {
[VARIABLE_LANG] = "LANG",
+ [VARIABLE_LANGUAGE] = "LANGUAGE",
[VARIABLE_LC_CTYPE] = "LC_CTYPE",
[VARIABLE_LC_NUMERIC] = "LC_NUMERIC",
[VARIABLE_LC_TIME] = "LC_TIME",
[VARIABLE_LC_CTYPE] = "LC_CTYPE",
[VARIABLE_LC_NUMERIC] = "LC_NUMERIC",
[VARIABLE_LC_TIME] = "LC_TIME",
"LANG", &variables[VARIABLE_LANG],
#endif
"locale.LANG", &variables[VARIABLE_LANG],
"LANG", &variables[VARIABLE_LANG],
#endif
"locale.LANG", &variables[VARIABLE_LANG],
+ "locale.LANGUAGE", &variables[VARIABLE_LANGUAGE],
"locale.LC_CTYPE", &variables[VARIABLE_LC_CTYPE],
"locale.LC_NUMERIC", &variables[VARIABLE_LC_NUMERIC],
"locale.LC_TIME", &variables[VARIABLE_LC_TIME],
"locale.LC_CTYPE", &variables[VARIABLE_LC_CTYPE],
"locale.LC_NUMERIC", &variables[VARIABLE_LC_NUMERIC],
"locale.LC_TIME", &variables[VARIABLE_LC_TIME],
if (r <= 0 &&
(r = parse_env_file("/etc/locale.conf", NEWLINE,
"LANG", &variables[VARIABLE_LANG],
if (r <= 0 &&
(r = parse_env_file("/etc/locale.conf", NEWLINE,
"LANG", &variables[VARIABLE_LANG],
+ "LANGUAGE", &variables[VARIABLE_LANGUAGE],
"LC_CTYPE", &variables[VARIABLE_LC_CTYPE],
"LC_NUMERIC", &variables[VARIABLE_LC_NUMERIC],
"LC_TIME", &variables[VARIABLE_LC_TIME],
"LC_CTYPE", &variables[VARIABLE_LC_CTYPE],
"LC_NUMERIC", &variables[VARIABLE_LC_NUMERIC],
"LC_TIME", &variables[VARIABLE_LC_TIME],
"LC_IDENTIFICATION", &variables[VARIABLE_LC_IDENTIFICATION],
NULL)) < 0) {
"LC_IDENTIFICATION", &variables[VARIABLE_LC_IDENTIFICATION],
NULL)) < 0) {
- if (r != -ENOENT)
- log_warning("Failed to read /etc/sysconfig/i18n: %s", strerror(-r));
+ if (r != -ENOENT)
+ log_warning("Failed to read /etc/sysconfig/i18n: %s", strerror(-r));
* using LANG instead. */
PROP_LANG,
* using LANG instead. */
PROP_LANG,
PROP_LC_CTYPE,
PROP_LC_NUMERIC,
PROP_LC_TIME,
PROP_LC_CTYPE,
PROP_LC_NUMERIC,
PROP_LC_TIME,
static const char * const names[_PROP_MAX] = {
[PROP_LANG] = "LANG",
static const char * const names[_PROP_MAX] = {
[PROP_LANG] = "LANG",
+ [PROP_LANGUAGE] = "LANGUAGE",
[PROP_LC_CTYPE] = "LC_CTYPE",
[PROP_LC_NUMERIC] = "LC_NUMERIC",
[PROP_LC_TIME] = "LC_TIME",
[PROP_LC_CTYPE] = "LC_CTYPE",
[PROP_LC_NUMERIC] = "LC_NUMERIC",
[PROP_LC_TIME] = "LC_TIME",
r = parse_env_file("/etc/locale.conf", NEWLINE,
"LANG", &data[PROP_LANG],
r = parse_env_file("/etc/locale.conf", NEWLINE,
"LANG", &data[PROP_LANG],
+ "LANGUAGE", &data[PROP_LANGUAGE],
"LC_CTYPE", &data[PROP_LC_CTYPE],
"LC_NUMERIC", &data[PROP_LC_NUMERIC],
"LC_TIME", &data[PROP_LC_TIME],
"LC_CTYPE", &data[PROP_LC_CTYPE],
"LC_NUMERIC", &data[PROP_LC_NUMERIC],
"LC_TIME", &data[PROP_LC_TIME],
# Unset locale for the console getty since the console has problems
# displaying some internationalized messages.
# Unset locale for the console getty since the console has problems
# displaying some internationalized messages.
-Environment=LANG= LC_CTYPE= LC_NUMERIC= LC_TIME= LC_COLLATE= LC_MONETARY= LC_MESSAGES= LC_PAPER= LC_NAME= LC_ADDRESS= LC_TELEPHONE= LC_MEASUREMENT= LC_IDENTIFICATION=
+Environment=LANG= LANGUAGE= LC_CTYPE= LC_NUMERIC= LC_TIME= LC_COLLATE= LC_MONETARY= LC_MESSAGES= LC_PAPER= LC_NAME= LC_ADDRESS= LC_TELEPHONE= LC_MEASUREMENT= LC_IDENTIFICATION=
# Some login implementations ignore SIGTERM, so we send SIGHUP
# instead, to ensure that login terminates cleanly.
# Some login implementations ignore SIGTERM, so we send SIGHUP
# instead, to ensure that login terminates cleanly.