On Fri, Jan 26, 2018 at 04:54:08PM +0300, a.parfenov@postgrespro.ru wrote:
> As it mentioned in pg_locale.c, the variable LC_MESSAGES is ignored in
> Windows(pg_locale.c:162).
That comment says "On Windows, setlocale(LC_MESSAGES) does not work". It says
nothing about the LC_MESSAGES environment variable.
> Additionally, this affects regress tests, since language
> for messages generated by psql is also configured via LC_MESSAGES and
> ignored on Windows installations and cause failure of tests on
> non-English Windows installations.
I vaguely recall having seen such a problem with an old version of GNU
gettext. On Windows Server 2016, with binaries from
https://get.enterprisedb.com/postgresql/postgresql-11.0-beta3-windows-x64-binaries.zip,
in an account having its Windows display language set to "Español (España)", I
get this behavior:
$ for lang in '' it C; do LC_MESSAGES=$lang ./psql.exe --help; done | grep -e --output
-o, --output=ARCHIVO enviar resultados de consultas a archivo (u |orden)
-o, --output=NOME_FILE reindirizza i risultati al file specificato
-o, --output=FILENAME send query results to file (or |pipe)
If you run those commands without your patch, what do you see? What do you
see with your patch? What does your environment have for each of the
following characteristics?
- Windows version
- gettext version
- user's Windows display language
- user's locale ("Format" in "Region" control panel)
- Windows ANSI code page
("Language for non-Unicode programs" in "Region" control panel)