Since 'LC_MESSAGES=C' prints
$ LC_MESSAGES=C locale
LANG=en_XX.UTF-8@POSIX
LC_CTYPE=en_US.UTF-8
LC_NUMERIC="en_XX.UTF-8@POSIX"
LC_TIME="en_XX.UTF-8@POSIX"
LC_COLLATE="en_XX.UTF-8@POSIX"
LC_MONETARY="en_XX.UTF-8@POSIX"
LC_MESSAGES=C
LC_PAPER="en_XX.UTF-8@POSIX"
LC_NAME="en_XX.UTF-8@POSIX"
LC_ADDRESS="en_XX.UTF-8@POSIX"
LC_TELEPHONE="en_XX.UTF-8@POSIX"
LC_MEASUREMENT="en_XX.UTF-8@POSIX"
LC_IDENTIFICATION="en_XX.UTF-8@POSIX"
LC_ALL=
you may be absolutely right that things are working as expected and I've had a brainfart.
Sorry for the noise.
]]>$ LC_ALL=C locale
LANG=en_AU.UTF-8
LC_CTYPE="C"
LC_NUMERIC="C"
The fact LANG is not changed?
Edit: Going from the topic: 'LC_ALL=C locale' changes almost all fields to "C"
That is supposed to happen. What do you think "ALL" means?
$ LC_MESSAGES=C locale
LANG=en_XX.UTF-8@POSIX
LC_CTYPE=en_US.UTF-8
LC_NUMERIC="en_XX.UTF-8@POSIX"
LC_TIME="en_XX.UTF-8@POSIX"
LC_COLLATE="en_XX.UTF-8@POSIX"
LC_MONETARY="en_XX.UTF-8@POSIX"
LC_MESSAGES=C
LC_PAPER="en_XX.UTF-8@POSIX"
LC_NAME="en_XX.UTF-8@POSIX"
LC_ADDRESS="en_XX.UTF-8@POSIX"
LC_TELEPHONE="en_XX.UTF-8@POSIX"
LC_MEASUREMENT="en_XX.UTF-8@POSIX"
LC_IDENTIFICATION="en_XX.UTF-8@POSIX"
See eg this
]]>It's my understanding that the value of LC_ALL overrides all other LC_ vars. So isn't locale correct in reporting them all as being "C"?
No, it should only display the output in English.
See also https://bbs.archlinux.org/viewtopic.php … 0#p1552780
]]>Sorry, I mean what is the expected output of 'LC_ALL=C locale'?
Depends on your locale :-)
For me, it should say
LANG=en_XX.UTF-8@POSIX
LC_CTYPE=en_US.UTF-8
LC_NUMERIC="en_XX.UTF-8@POSIX"
LC_TIME="en_XX.UTF-8@POSIX"
LC_COLLATE="en_XX.UTF-8@POSIX"
LC_MONETARY="en_XX.UTF-8@POSIX"
LC_MESSAGES="en_XX.UTF-8@POSIX"
LC_PAPER="en_XX.UTF-8@POSIX"
LC_NAME="en_XX.UTF-8@POSIX"
LC_ADDRESS="en_XX.UTF-8@POSIX"
LC_TELEPHONE="en_XX.UTF-8@POSIX"
LC_MEASUREMENT="en_XX.UTF-8@POSIX"
LC_IDENTIFICATION="en_XX.UTF-8@POSIX"
LC_ALL=C
LC_ALL=C is used to display errors in English e.g. https://bbs.archlinux.org/viewtopic.php?id=200990
$ locale
locale: Kan inte stta LC_ALL till standardlokalen: Filen eller katalogen finns inte
LANG=sv_SE.UTF-8
<snip>
I'm still curious, what is the expected behaviour?
It prints the messages in English:
~ $ LC_ALL=de_DE pacman -Syu
Fehler: Sie bentigen Root-Rechte, um diese Operation auszufhren.
~ $ LC_MESSAGES=de_DE pacman -Syu
Fehler: Sie benötigen Root-Rechte, um diese Operation auszuführen.
~ $ LC_MESSAGES=C pacman -Syu
error: you cannot perform this operation unless you are root.
It makes the debugging / googling easier, since we speak English here.
I've noticed that LC_ALL=de_DE doesn't print the umlauts, while LC_MESSAGES=de_DE does, although that doesn't matter for English (and 'C' uses English).
]]>bp:~% locale -a
C
de_DE
de_DE@euro
de_DE.iso88591
de_DE.iso885915@euro
de_DE.utf8
deutsch
en_US
en_US.iso88591
en_US.utf8
eo
eo.utf8
german
POSIX
Obviously it simply replaces the LC_ALL argument with the real locale used:
bp:~% LC_ALL=deutsch locale
LANG=de_DE.utf8
LC_CTYPE="deutsch"
LC_NUMERIC="deutsch"
LC_TIME="deutsch"
LC_COLLATE="deutsch"
LC_MONETARY="deutsch"
LC_MESSAGES="deutsch"
LC_PAPER="deutsch"
LC_NAME="deutsch"
LC_ADDRESS="deutsch"
LC_TELEPHONE="deutsch"
LC_MEASUREMENT="deutsch"
LC_IDENTIFICATION="deutsch"
LC_ALL=deutsch
which is unusual but o.k. But it may as well report shere nonsense:
bp:~% LC_ALL=shit locale
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=de_DE.utf8
LC_CTYPE="shit"
LC_NUMERIC="shit"
LC_TIME="shit"
LC_COLLATE="shit"
LC_MONETARY="shit"
LC_MESSAGES="shit"
LC_PAPER="shit"
LC_NAME="shit"
LC_ADDRESS="shit"
LC_TELEPHONE="shit"
LC_MEASUREMENT="shit"
LC_IDENTIFICATION="shit"
LC_ALL=shit
Never seen this before. But on the other hand, locale appears to work as wanted otherwise.
]]>karol wrote:glibc 2.22-1 hit the non-testing repos just a few hours ago, so maybe some users haven't updated yet and can test it.
Good to know. I always just assumed the package "Build Date" roughly reflected the time it entered the standard repos.
Since glibc goes through [testing], 'Last Updated' is the time it became available in the regular repos:
https://www.archlinux.org/packages/core/i686/glibc/
Build Date: 2015-08-06 04:41 UTC
Last Updated: 2015-08-12 04:51 UTC
glibc 2.22-1 hit the non-testing repos just a few hours ago, so maybe some users haven't updated yet and can test it.
Good to know. I always just assumed the package "Build Date" roughly reflected the time it entered the standard repos.
]]>