`Gtk-WARNING **: Locale not supported by C library. ` when starting apps from the commandline

First make sure your library language is installed

sudo apt-get install language-pack-en-base,

for example.

Then, as superuser, shorten the work by allowing Ubuntu to automatically configure them:

sudo dpkg-reconfigure locales

Check your setup, if it's correct then good. But if you have the LANG= or LANGUAGE= settings blank, run this in command line:

locale -a

Which generates the locales installed and available to you.

Choose the locale from the output generated that fits your situation, and export that setting to replace your locales, for example:

export LC_ALL="en.utf-8"

For manual installation use export to set locale by hand which will manually install custom locales, first run the set up as above.

Then, say you want to install "en_us-8" for language but have need for another locale for NUMERIC and TIME, you may wish to use "en_NZ.utf-8" (remember: these are case-sensitive) or LANGUAGE="en_GB.utf-8" and NUMERIC="en.dk.ISO-8859-15". Traveling to New Zealand, I could change the locale LANGUAGE="en.NZ". For Germany, I would just need to install the locales pkg for it and input, in terminal, like the examples below:

export LC_ALL="en_US"
export LANG="en_US"
export LANGUAGE="en_NZ"
export C_CTYPE="en_US"
export LC_NUMERIC=
export LC_TIME=en"en_US"

LC_ALL= may remain empty.


This occurred to me more than once, on my mint mate 18, which is based on Ubuntu 16.04, so I'd like to share the solution I found, in case anyone needs.

Steps:

(These steps works for mint mate, but Ubuntu might have similar configurations, not sure)

  • Open "language settings".
  • Install languages, if missing. (For me, I would install Chinese & Japanese languages in addition to English)
  • For option Language and Region, make sure the default language for them are proper, e.g set to "English, United States UTF-8",
  • Reboot, if any change is made.
  • Check whether it's fine.

first:

sudo apt-get purge locales

then:

sudo aptitude install locales

and the famous:

sudo dpkg-reconfigure locales

This rids the system of locales, then re-installs locales and downgrades libc6 from 2.19 to 2.13 which is the issue. Then configures locales again.