linuxmint / cinnamon

A Linux desktop featuring a traditional layout, built from modern technology and introducing brand new innovative features.
GNU General Public License v2.0
4.48k stars 730 forks source link

Cinnamon ignores my /etc/locale.conf #6354

Open marmistrz opened 7 years ago

marmistrz commented 7 years ago

I had a real mess with locale on my system. /etc/locale.conf has always stayed:

LANG=en_US.utf8
LC_TIME=pl_PL.utf8

First of all, there were no locales generated altogether. Then I generated pl_PL.utf8 but forgot about en_US.utf8. Afterwards, I generated both of them.

Now Cinnamon insists on using pl_PL.utf8 for all locale variables, even though I have tried to set /etc/locale.conf to

LANG=en_US.UTF-8

I have regenerated locales with locale-gen and rebooted but this is no fix.

Using Arch Linux. Locale works properly in the TTY.

marmistrz commented 7 years ago

I tried removing the Polish locale, this was no fix. Then I logged out, clicked onto the only available langauge (English) in lightdm. This made Cinnamon use English as the display language, but LC_TIME is ignored this time.

NikoKrause commented 7 years ago

https://wiki.archlinux.org/index.php/Locale

p-baum commented 5 years ago

I also suffer from this bug. Information in the arch wiki does not resolve it.

Running

$ unset LANG
$ source /etc/profile.d/locale.sh

from terminal loads the locale correctly which suggests it is either not read initially or later overridden.

My locale.conf looks like this:

LANG=de_DE.UTF-8
LC_MESSAGES=en_GB.UTF-8

which works fine in XFCE. (german locale with english interface)

interestingly though localectl status correctly shows:

   System Locale: LANG=de_DE.UTF-8
                  LC_MESSAGES=en_GB.UTF-8
       VC Keymap: de-latin1-nodeadkeys
      X11 Layout: de
       X11 Model: nodeadkeys

A major side-effect of this bug is garbled output from terminal apps (eg ls) that contain non standard chars (äöü etc)

erroneous output from locale:

LANG=C
LC_CTYPE="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_PAPER="C"
LC_NAME="C"
LC_ADDRESS="C"
LC_TELEPHONE="C"
LC_MEASUREMENT="C"
LC_IDENTIFICATION="C"
LC_ALL=
p-baum commented 5 years ago

workaround:

echo "unset LANG && source /etc/profile.d/locale.sh" >> ~/.profile