Ubuntu – How to set LANGUAGE in locale permanently

gnomegnome-control-centerlocale

After running into this bug: https://gitlab.gnome.org/GNOME/gnome-control-center/issues/236

I can't get my locale fixed. It is impossible to fix it with gnome-control-center, and "export LANGUAGE=gd:en_GB:en" will fix it in the current terminal only.

I have read https://help.ubuntu.com/community/EnvironmentVariables#Persistent_environment_variables

Also,

$ cat /etc/default/locale
LANGUAGE="gd:de_DE:en_GB:en"
LC_NUMERIC="gd_GB.UTF-8"
LC_TIME="gd_GB.UTF-8"
LC_MONETARY="gd_GB.UTF-8"
LC_PAPER="gd_GB.UTF-8"
LC_IDENTIFICATION="gd_GB.UTF-8"
LC_NAME="gd_GB.UTF-8"
LC_ADDRESS="gd_GB.UTF-8"
LC_TELEPHONE="gd_GB.UTF-8"
LC_MEASUREMENT="gd_GB.UTF-8"
LANG="gd_GB.UTF-8"

but when I log in again and start a terminal, de_DE is back like a bad penny.

I have edited /etc/common/locale as suggested, and this file is now clean, but the locale setting regressed. Regerating the locales has no effect, because the locales athemselves are not broken. Programs are still using German, and it's listed in the terminal. A reboot after applying the changes has no effect.

$ cat /etc/default/locale
LANGUAGE=gd:en_GB:en
LC_NUMERIC="gd_GB.UTF-8"
LC_TIME="gd_GB.UTF-8"
LC_MONETARY="gd_GB.UTF-8"
LC_PAPER="gd_GB.UTF-8"
LC_IDENTIFICATION="gd_GB.UTF-8"
LC_NAME="gd_GB.UTF-8"
LC_ADDRESS="gd_GB.UTF-8"
LC_TELEPHONE="gd_GB.UTF-8"
LC_MEASUREMENT="gd_GB.UTF-8"
LANG="gd_GB.UTF-8"

$ locale
LANG=gd_GB.UTF-8
LANGUAGE=gd:de_DE:en_GB:en
<snip>

$ sudo locale-gen "en_US.UTF-8"
Generating locales (this might take a while)...
  en_US.UTF-8... done
Generation complete.

$ sudo dpkg-reconfigure locales
Generating locales (this might take a while)...
  en_AG.UTF-8... done
<snip>
  en_ZW.UTF-8... done
  gd_GB.UTF-8... done
Generation complete.

$ locale
LANG=gd_GB.UTF-8
LANGUAGE=gd:de_DE:en_GB:en
LC_CTYPE="gd_GB.UTF-8"
LC_NUMERIC=gd_GB.UTF-8
LC_TIME=gd_GB.UTF-8
LC_COLLATE="gd_GB.UTF-8"
LC_MONETARY=gd_GB.UTF-8
LC_MESSAGES="gd_GB.UTF-8"
LC_PAPER=gd_GB.UTF-8
LC_NAME=gd_GB.UTF-8
LC_ADDRESS=gd_GB.UTF-8
LC_TELEPHONE=gd_GB.UTF-8
LC_MEASUREMENT=gd_GB.UTF-8
LC_IDENTIFICATION=gd_GB.UTF-8
LC_ALL=

Best Answer

grep to the rescue - the following 2 files need to be edited with sudo gedit to remove the locale:

/etc/default/locale
/home/<user>/.pam_environment
Related Question