Is it possible to change the language of system messages from PostgreSQL?

In MSSQL for instance this is possible with the SQL statement SET LANGUAGE.

7

Best Answer


SET lc_messages TO 'en_US.UTF-8';

More info on requirements and limitations here.

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.

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'.

In my case (on Windows Server 2019) I managed to change language by creating a system environment variable "LC_MESSAGES" with value "English":

setx LC_MESSAGES English /m

(Solution taken from here)

I've reproduced the same issue with naming of PostgreSQL error messages which were specifically displayed in Intellij IDEA similar to:

enter image description here

the only solution for me was renaming C:\Program Files\PostgreSQL\13\share\locale folder to another default name.

then as result changed to:

enter image description here

To be noticed: it wasn't related to Intellij Idea configurations at all, because I tested different answers (and other non-related to IDE answers), e.g., like:

  1. Help | Edit custom VM options
  2. Setting of Environments variables
  3. Using specific commands

only change postgresql.conf is not working on windows10,the following method is fine for me,is very simple but work:

  1. change lc_message = en_US.UTF-8, in postgresql.conf;
  2. delete all files in fold: \share\locale, expect es fold or thelanguage you want to keep;
  3. restart pg service and then you will find that is what you want!

I simply deleted the LC_MESSAGE folder from

C:\Program Files\PostgreSQL\14\share\locale\<LANGUAGE YOU WANT TO GET RID OF>\LC_MESSAGE

and re-log in to psql