Change language of system and error messages in PostgreSQL
Solution 1:
SET lc_messages TO 'en_US.UTF-8';
More info on requirements and limitations here.
Solution 2:
Milen's answer didn't work for me.
I got it working by modifying a file postgresql.conf
. If you're on Linux, write:
sudo find / -iname postgresql.conf
I had mine in /var/lib/pgsql/data
.
Then edit the file and search for a variable lc_messages
and change it to your preferred language, e.g. 'en_US.UTF-8'
.
If PostgreSQL stops working and you check in its log that you have an error that looks like this:
invalid value for parameter "lc_messages": "en_US.UTF-8"
You have to edit /etc/locale.gen
and uncomment line with encoding from the error message (e.g. en_US.UTF-8
). Then you have to run locale-gen
(as root) to update the locales. Finally, to check if the locale is set you can run locale -a
.
Or, if you want the language to be English, you can just set lc_messages = 'C'
.
Solution 3:
For me neither Milen A. Radev's nor user1's answer worked - editing PostgreSQL\11\data\postgresql.conf
had absolutely no effect. Even after setting lc_messages = 'random value'
PostgreSQL would still start.
What helped was to delete PostgreSQL\11\share\locale\*\LC_MESSAGES
, after that I finally got English messages.