aboutsummaryrefslogtreecommitdiff
path: root/src/backend
diff options
context:
space:
mode:
authorAlvaro Herrera <alvherre@alvh.no-ip.org>2008-10-09 17:24:05 +0000
committerAlvaro Herrera <alvherre@alvh.no-ip.org>2008-10-09 17:24:05 +0000
commit2532c54d82b4925fd882a2bf119a7cc01b804d48 (patch)
treead5f209495866b53baf85d3c388462434fa471e1 /src/backend
parentb15531033e8bcff1e0a436d6bd18b5a09e477a20 (diff)
downloadpostgresql-2532c54d82b4925fd882a2bf119a7cc01b804d48.tar.gz
postgresql-2532c54d82b4925fd882a2bf119a7cc01b804d48.zip
Improve translatability of error messages for external modules by tweaking
the ereport macro. Included in this commit are enough files for starting plpgsql, plpython, plperl and pltcl translations.
Diffstat (limited to 'src/backend')
-rw-r--r--src/backend/utils/error/elog.c10
-rw-r--r--src/backend/utils/init/miscinit.c16
2 files changed, 21 insertions, 5 deletions
diff --git a/src/backend/utils/error/elog.c b/src/backend/utils/error/elog.c
index d2315fb1f6b..178c55ad596 100644
--- a/src/backend/utils/error/elog.c
+++ b/src/backend/utils/error/elog.c
@@ -42,7 +42,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/error/elog.c,v 1.206 2008/09/01 20:42:45 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/error/elog.c,v 1.207 2008/10/09 17:24:05 alvherre Exp $
*
*-------------------------------------------------------------------------
*/
@@ -160,7 +160,7 @@ static void write_csvlog(ErrorData *edata);
*/
bool
errstart(int elevel, const char *filename, int lineno,
- const char *funcname)
+ const char *funcname, const char *domain)
{
ErrorData *edata;
bool output_to_server;
@@ -290,6 +290,8 @@ errstart(int elevel, const char *filename, int lineno,
edata->filename = filename;
edata->lineno = lineno;
edata->funcname = funcname;
+ /* the default text domain is the backend's */
+ edata->domain = domain ? domain : "postgres";
/* Select default errcode based on elevel */
if (elevel >= ERROR)
edata->sqlerrcode = ERRCODE_INTERNAL_ERROR;
@@ -611,7 +613,7 @@ errcode_for_socket_access(void)
char *fmtbuf; \
StringInfoData buf; \
/* Internationalize the error format string */ \
- fmt = _(fmt); \
+ fmt = dgettext(edata->domain, fmt); \
/* Expand %m in format string */ \
fmtbuf = expand_fmt_string(fmt, edata); \
initStringInfo(&buf); \
@@ -982,7 +984,7 @@ elog_finish(int elevel, const char *fmt,...)
*/
errordata_stack_depth--;
errno = edata->saved_errno;
- if (!errstart(elevel, edata->filename, edata->lineno, edata->funcname))
+ if (!errstart(elevel, edata->filename, edata->lineno, edata->funcname, NULL))
return; /* nothing to do */
/*
diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c
index 5369da439b6..c3b26698e2a 100644
--- a/src/backend/utils/init/miscinit.c
+++ b/src/backend/utils/init/miscinit.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/init/miscinit.c,v 1.167 2008/03/27 17:24:16 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/init/miscinit.c,v 1.168 2008/10/09 17:24:05 alvherre Exp $
*
*-------------------------------------------------------------------------
*/
@@ -1212,3 +1212,17 @@ process_local_preload_libraries(void)
"local_preload_libraries",
true);
}
+
+void
+set_text_domain(const char *domain)
+{
+#ifdef ENABLE_NLS
+ if (my_exec_path[0] != '\0')
+ {
+ char locale_path[MAXPGPATH];
+
+ get_locale_path(my_exec_path, locale_path);
+ bindtextdomain(domain, locale_path);
+ }
+#endif
+}