I had exactly the same problem with sublimeT3. First on a terminal I ran the next command:
$echo $LOCAL
And the output was an empty line.
Next I ran:
$locale
An this was the output:
LANG=
LANGUAGE=en_US
LC_CTYPE=POSIX
LC_NUMERIC=POSIX
LC_TIME=POSIX
LC_COLLATE=POSIX
LC_MONETARY=POSIX
LC_MESSAGES=POSIX
LC_PAPER=POSIX
LC_NAME=POSIX
LC_ADDRESS=POSIX
LC_TELEPHONE=POSIX
LC_MEASUREMENT=POSIX
LC_IDENTIFICATION=POSIX
LC_ALL=POSIX
I tried to reset the locales with some of the answers given here, but everything was unsuccessful, every time the "locale" command gave the same output.
Even my /etc/default/locale seemed to be right:
$cat /etc/default/locale
Output:
LANG=en_US.UTF-8
LC_NUMERIC="es_CO.UTF-8"
LC_TIME="es_CO.UTF-8"
LC_MONETARY="es_CO.UTF-8"
LC_PAPER="es_CO.UTF-8"
LC_NAME="es_CO.UTF-8"
LC_ADDRESS="es_CO.UTF-8"
LC_TELEPHONE="es_CO.UTF-8"
LC_MEASUREMENT="es_CO.UTF-8"
LC_IDENTIFICATION="es_CO.UTF-8"
Because of this I wondered if maybe something was overriding the environment variables. My .pam_environment file seemed to be correct:
$cat .pam_environment
Output:
LANGUAGE=en_US:en
LANG=en_US.UTF-8
LC_NUMERIC=es_CO.UTF-8
LC_TIME=es_CO.UTF-8
LC_MONETARY=es_CO.UTF-8
LC_PAPER=es_CO.UTF-8
LC_NAME=es_CO.UTF-8
LC_ADDRESS=es_CO.UTF-8
LC_TELEPHONE=es_CO.UTF-8
LC_MEASUREMENT=es_CO.UTF-8
LC_IDENTIFICATION=es_CO.UTF-8
PAPERSIZE=letter
So I ran the next command which gave me the clue of what was going on:
$cat .bashrc | grep LANG
Here the output:
unset LANG
I don't know when or how, but I ended up with two lines on my .bashrc that overrode the value of "locale" variables. I'm not pasting the whole bash file, but the two key lines were these:
unset LANG
export LC_ALL=POSIX
By commenting them on the bash file and a reboot, voila! my locale was set up as it was intended to, and sublimeT3 stopped complaining. It's been more than a year since this was formulated, but maybe it could help someone else!