libpq messages language
Hi,
I am using Windows, and pg 8.2.5
When making a connection with libpq, if it fails I would like to get the errors messages in spanish (PQerrorMessage )
Is this possible? How can this be done?
thanks
Efraín López wrote:
I am using Windows, and pg 8.2.5
When making a connection with libpq, if it fails I would like
to get the errors messages in spanish (PQerrorMessage )Is this possible? How can this be done?
Set the program's locale prior to calling libpq functions.
I did not try it on Windows, but Microsoft seems to work like
UNIX in that respect:
http://msdn2.microsoft.com/en-us/library/x99tb11d(VS.80).aspx
Try something like
setlocale(LC_MESSAGES, "Spanish");
or, if your language environment is Spanish, simply
setlocale(LC_MESSAGES, "");
Yours,
Laurenz Albe
Thank you for your reply
but I got the error 'LC_MESSAGES' : undeclared identifier
locale.h only defines LC_COLLATE, LC_CTYPE, LC_MONETARY, LC_NUMERIC, LC_TIME
I tried to set a system variable LC_MESSAGES, but didn't work
Then, I tried to find more information
In libpq, when ENABLE_NLS is not defined,
#define libpq_gettext(x) (x)
If I set ENABLE_NLS to 1, then I think I need the gettext library, because
it needs <libintl.h>
so, there is no simple way in windows to get messages in spanish within
libpq before connecting to server, is correct?
thanks
----- Original Message -----
From: "Albe Laurenz" <laurenz.albe@wien.gv.at>
To: "Efra�n L�pez *EXTERN*" <tecnomaya@cabsagt.com>;
<pgsql-general@postgresql.org>
Sent: Tuesday, December 04, 2007 5:33 AM
Subject: RE: [GENERAL] libpq messages language
Efra�n L�pez wrote:
I am using Windows, and pg 8.2.5
When making a connection with libpq, if it fails I would like
to get the errors messages in spanish (PQerrorMessage )Is this possible? How can this be done?
Set the program's locale prior to calling libpq functions.
I did not try it on Windows, but Microsoft seems to work like
UNIX in that respect:
http://msdn2.microsoft.com/en-us/library/x99tb11d(VS.80).aspx
Try something like
setlocale(LC_MESSAGES, "Spanish");
or, if your language environment is Spanish, simply
setlocale(LC_MESSAGES, "");
Yours,
Laurenz Albe
On Dec 6, 2007 8:03 AM, Efraín López <tecnomaya@cabsagt.com> wrote:
Thank you for your reply
but I got the error 'LC_MESSAGES' : undeclared identifier
locale.h only defines LC_COLLATE, LC_CTYPE, LC_MONETARY, LC_NUMERIC,
LC_TIMEI tried to set a system variable LC_MESSAGES, but didn't work
Then, I tried to find more information
In libpq, when ENABLE_NLS is not defined,
#define libpq_gettext(x) (x)If I set ENABLE_NLS to 1, then I think I need the gettext library, because
it needs <libintl.h>so, there is no simple way in windows to get messages in spanish within
libpq before connecting to server, is correct?
Well libpq like rest of postgres uses gettext for i18N , so i think you need
to have your windows locale set to spanish, have the gettext library
installed and spanish message catalogs available on your system, which will
be if you compiled the source with --enable-nls configure option then it
doesn't matter if the connection was made to the server or not, since libpq
has its own translated messages catalog.
--
Usama Munir Dar http://linkedin.com/in/usamadar
Consultant Architect
Cell:+92 321 5020666
Skype: usamadar
Efraín López wrote:
I am using Windows, and pg 8.2.5
When making a connection with libpq, if it fails I would like
to get the errors messages in spanish (PQerrorMessage )Is this possible? How can this be done?
I got it to work with this program:
#include <stdlib.h>
#include <stdio.h>
#include <locale.h>
#include <libpq-fe.h>
int main(int argc, char **argv) {
PGconn *conn;
setlocale(LC_ALL, "");
putenv("PGLOCALEDIR=C:\\Programme\\postgres\\share\\locale");
conn = PQconnectdb("port=4711");
if (CONNECTION_OK != PQstatus(conn)) {
fprintf(stderr, "%s\n", PQerrorMessage(conn));
PQfinish(conn);
return 1;
}
PQfinish(conn);
return 0;
}
Instead of setting PGLOCALEDIR in the code, you can also define
it as environment variable on your system, that is maybe better.
It must point to the directory where your message files are installed
(you have spanish message files installed, haven't you?).
The above program assumes that there is no database running
on port 4711, so you get an error message from libpq.
Yours,
Laurenz Albe
Thank you very much for your help. It worked for me.
I am using Visual C++ 2005 express
I downloaded gettext-runtime-0.13.1.bin.woe32.zip and
libiconv-1.9.1.bin.woe32.zip from
http://sourceforge.net/project/showfiles.php?group_id=25167
Then I compiled libpq with ENABLE_NLS, gettext and libiconv libs
They, I just got carefull with PGLOCALEDIR,
again, thank you!
----- Original Message -----
From: "Albe Laurenz" <laurenz.albe@wien.gv.at>
To: "Efra�n L�pez *EXTERN*" <tecnomaya@cabsagt.com>;
<pgsql-general@postgresql.org>
Sent: Friday, December 07, 2007 2:52 AM
Subject: RE: [GENERAL] libpq messages language
Efra�n L�pez wrote:
I am using Windows, and pg 8.2.5
When making a connection with libpq, if it fails I would like
to get the errors messages in spanish (PQerrorMessage )Is this possible? How can this be done?
I got it to work with this program:
#include <stdlib.h>
#include <stdio.h>
#include <locale.h>
#include <libpq-fe.h>
int main(int argc, char **argv) {
PGconn *conn;
setlocale(LC_ALL, "");
putenv("PGLOCALEDIR=C:\\Programme\\postgres\\share\\locale");
conn = PQconnectdb("port=4711");
if (CONNECTION_OK != PQstatus(conn)) {
fprintf(stderr, "%s\n", PQerrorMessage(conn));
PQfinish(conn);
return 1;
}
PQfinish(conn);
return 0;
}
Instead of setting PGLOCALEDIR in the code, you can also define
it as environment variable on your system, that is maybe better.
It must point to the directory where your message files are installed
(you have spanish message files installed, haven't you?).
The above program assumes that there is no database running
on port 4711, so you get an error message from libpq.
Yours,
Laurenz Albe