Locale errors en_DE.UTF-8 after [Stable Update] 2020-07-19 [KDE]

Since the 07-19 upgrade, I am getting locale errors (08-16 stable upgrade did not fix it)

shasum manjaro-kde-20.0.3-200606-linux56.iso 
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = "",
        LC_ALL = (unset),
        LC_ADDRESS = "de_DE.UTF-8",
        LC_NAME = "de_DE.UTF-8",
        LC_MONETARY = "en_DE.UTF-8",
        LC_PAPER = "de_DE.UTF-8",
        LC_IDENTIFICATION = "de_DE.UTF-8",
        LC_TELEPHONE = "de_DE.UTF-8",
        LC_MEASUREMENT = "en_DE.UTF-8",
        LC_TIME = "en_DE.UTF-8",
        LC_NUMERIC = "en_DE.UTF-8",
        LANG = "en_DE.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
dc7427636040e9469861251858aae820c2ae16cc  manjaro-kde-20.0.3-200606-linux56.iso

and

pdfgrep -ri "test"
terminate called after throwing an instance of 'std::runtime_error'
what():  locale::facet::_S_create_c_locale name not valid
Aborted (core dumped)

My goal is to have english as display language and german for formats like it is configured in manjaro settings manager and like it worked fine up to the upgrade.

What I tried so far:

[tony@comp ~]$ 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=en_DE.UTF-8
LC_CTYPE="en_DE.UTF-8"
LC_NUMERIC=de_DE.UTF-8
LC_TIME=de_DE.UTF-8
LC_COLLATE="en_DE.UTF-8"
LC_MONETARY=de_DE.UTF-8
LC_MESSAGES="en_DE.UTF-8"
LC_PAPER=de_DE.UTF-8
LC_NAME=de_DE.UTF-8
LC_ADDRESS=de_DE.UTF-8
LC_TELEPHONE=de_DE.UTF-8
LC_MEASUREMENT=de_DE.UTF-8
LC_IDENTIFICATION=de_DE.UTF-8
LC_ALL=

[tony@comp ~]$ localectl list-locales
de_DE.UTF-8
en_US.UTF-8
[tony@comp ~]$ locale -a
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_COLLATE to default locale: No such file or directory
C
POSIX
de_DE.utf8
en_US.utf8

[tony@comp ~]$ locale-gen
rm: cannot remove '/usr/lib/locale/locale-archive': Permission denied
Generating locales...
  de_DE.UTF-8...cannot open locale archive "/usr/lib/locale/locale-archive": Permission denied

[tony@comp ~]$ sudo locale-gen 
[sudo] password for tony: 
Generating locales...
  de_DE.UTF-8... done
  en_US.UTF-8... done
Generation complete.

[tony@comp ~]$ 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=en_DE.UTF-8
LC_CTYPE="en_DE.UTF-8"
LC_NUMERIC=de_DE.UTF-8
LC_TIME=de_DE.UTF-8
LC_COLLATE="en_DE.UTF-8"
LC_MONETARY=de_DE.UTF-8
LC_MESSAGES="en_DE.UTF-8"
LC_PAPER=de_DE.UTF-8
LC_NAME=de_DE.UTF-8
LC_ADDRESS=de_DE.UTF-8
LC_TELEPHONE=de_DE.UTF-8
LC_MEASUREMENT=de_DE.UTF-8
LC_IDENTIFICATION=de_DE.UTF-8
LC_ALL=

[tony@comp ~]$ localectl set-locale LANG=en_US.UTF-8 LC_CTYPE=en_US.UTF-8

[tony@comp ~]$ 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=en_DE.UTF-8
LC_CTYPE="en_DE.UTF-8"
LC_NUMERIC=de_DE.UTF-8
LC_TIME=de_DE.UTF-8
LC_COLLATE="en_DE.UTF-8"
LC_MONETARY=de_DE.UTF-8
LC_MESSAGES="en_DE.UTF-8"
LC_PAPER=de_DE.UTF-8
LC_NAME=de_DE.UTF-8
LC_ADDRESS=de_DE.UTF-8
LC_TELEPHONE=de_DE.UTF-8
LC_MEASUREMENT=de_DE.UTF-8
LC_IDENTIFICATION=de_DE.UTF-8
LC_ALL=

Nothing seems to work to get rid of en_DE.

How about manually editing /etc/local.conf ?
But make sure the en_DE.UTF-8 is not somehow present in /etc/locale.gen because is not valid entry, then redo the procedure of locale-gen

It looks ok to me:

/etc/locale.conf

LANG=en_US.UTF-8
LC_NUMERIC=de_DE.UTF-8
LC_TIME=de_DE.UTF-8
LC_MONETARY=de_DE.UTF-8
LC_PAPER=de_DE.UTF-8
LC_NAME=de_DE.UTF-8
LC_ADDRESS=de_DE.UTF-8
LC_TELEPHONE=de_DE.UTF-8
LC_MEASUREMENT=de_DE.UTF-8
LC_IDENTIFICATION=de_DE.UTF-8

The only uncommented entries in /etc/locale.gen are
de_DE.UTF-8 UTF-8
en_US.UTF-8 UTF-8

see

1 Like
sudo locale-gen en_US en_US.UTF-8 de_DE de_DE.UTF-8
sudo localedef -i de_DE -f UTF-8 en_DE.UTF-8

seems to do the trick.

5 Likes

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.