Comments tell that LANG has to be the first value, and LC_ALL the last one. Thus LANGUAGE is printed between them. # DP: Dpatch author: Denis Barbier # DP: Patch author: Denis Barbier # DP: Upstream status: not submitted # DP: Date: 2006-01-08 --- locale/programs/locale.c | 4 ++++ 1 file changed, 4 insertions(+) --- a/locale/programs/locale.c +++ b/locale/programs/locale.c @@ -773,6 +773,7 @@ { size_t cat_no; const char *lcall = getenv ("LC_ALL"); + const char *language = getenv ("LANGUAGE"); const char *lang = getenv ("LANG") ? : ""; auto void get_source (const char *name); @@ -791,6 +792,9 @@ /* LANG has to be the first value. */ printf ("LANG=%s\n", lang); + if (language != NULL && getenv ("POSIXLY_CORRECT") == NULL) + printf ("LANGUAGE=%s\n", language); + /* Now all categories in an unspecified order. */ for (cat_no = 0; cat_no < NCATEGORIES; ++cat_no) if (cat_no != LC_ALL)