Fedora 32 some stderr in bash not in the language as per locale configuration

I have recently observed that the standard error message is not in the locale language settings. I’m expecting an output in English but it gives the output in some other language.

It is not the case for all, only few. It used to work fine on Fedora 31. I have recently upgraded from 31 to 32.

Example:
$ if [ $DEST == “” ]; then echo “Test”; fi
bash: [: ==: eeldati unaarset operaatorit

Locale Configuration:
$ locale
LANG=en_IN.UTF-8
LC_CTYPE=“en_IN.UTF-8”
LC_NUMERIC=“en_IN.UTF-8”
LC_TIME=“en_IN.UTF-8”
LC_COLLATE=“en_IN.UTF-8”
LC_MONETARY=“en_IN.UTF-8”
LC_MESSAGES=“en_IN.UTF-8”
LC_PAPER=“en_IN.UTF-8”
LC_NAME=“en_IN.UTF-8”
LC_ADDRESS=“en_IN.UTF-8”
LC_TELEPHONE=“en_IN.UTF-8”
LC_MEASUREMENT=“en_IN.UTF-8”
LC_IDENTIFICATION=“en_IN.UTF-8”
LC_ALL=
$ localectl status
System Locale: LANG=en_IN.UTF-8
VC Keymap: in-eng
X11 Layout: in
X11 Variant: eng

Any comments, anyone?

I found the solution in this article - /usr/share/locale/en/LC_MESSAGES/bash.mo missing - Red Hat Customer Portal.

From the strace I could see that the shell was trying to find a file named “bash.mo” in /usr/share/locale. It found this file “/usr/share/locale/en/LC_MESSAGES/bash.mo”. I don’t know how this file ended up here. Removing or renaming the file does the trick. Now I see the correct error message.

mv /usr/share/locale/en/LC_MESSAGES/bash.mo /usr/share/locale/en/LC_MESSAGES/bash.mo,bkp

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