pg.ddx.io pgsql-hackers@postgresql.org mailing list archive
help / color / mirror / Atom feed From: Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
To: pgsql-hackers <pgsql-hackers@postgresql.org>
Subject: add more NLS to bin
Date: Wed, 26 Oct 2016 21:02:54 -0400
Message-ID: <bd794aca-572a-ac22-293c-3ea548881b76@2ndquadrant.com> (raw )
List-Unsubscribe: <mailto:majordomo@postgresql.org?body=unsub%20pgsql-hackers>
Here is a series of patches to add NLS to the remaining bin programs,
which were moved from contrib a while ago. (If you're missing pgbench,
I'm skipping that for now because it's more complicated.) I'll add this
to the commit fest.
--
Peter Eisentraut http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers
Attachments:
[text/x-patch] 0001-pg_archivecleanup-Add-NLS.patch (7.2K, ../bd794aca-572a-ac22-293c-3ea548881b76@2ndquadrant.com/2-0001-pg_archivecleanup-Add-NLS.patch)
download | inline diff:
From 1939efe002fde2cbc2012e7ae1af674e774e82cb Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <peter_e@gmx.net>
Date: Fri, 14 Oct 2016 12:00:00 -0400
Subject: [PATCH 1/7] pg_archivecleanup: Add NLS
---
src/bin/pg_archivecleanup/nls.mk | 4 ++
src/bin/pg_archivecleanup/pg_archivecleanup.c | 73 ++++++++++++++-------------
2 files changed, 41 insertions(+), 36 deletions(-)
create mode 100644 src/bin/pg_archivecleanup/nls.mk
diff --git a/src/bin/pg_archivecleanup/nls.mk b/src/bin/pg_archivecleanup/nls.mk
new file mode 100644
index 0000000..fd959a5
--- /dev/null
+++ b/src/bin/pg_archivecleanup/nls.mk
@@ -0,0 +1,4 @@
+# src/bin/pg_archivecleanup/nls.mk
+CATALOG_NAME = pg_archivecleanup
+AVAIL_LANGUAGES =
+GETTEXT_FILES = pg_archivecleanup.c
diff --git a/src/bin/pg_archivecleanup/pg_archivecleanup.c b/src/bin/pg_archivecleanup/pg_archivecleanup.c
index 319038f..f1651d4 100644
--- a/src/bin/pg_archivecleanup/pg_archivecleanup.c
+++ b/src/bin/pg_archivecleanup/pg_archivecleanup.c
@@ -70,7 +70,7 @@ Initialize(void)
if (stat(archiveLocation, &stat_buf) != 0 ||
!S_ISDIR(stat_buf.st_mode))
{
- fprintf(stderr, "%s: archive location \"%s\" does not exist\n",
+ fprintf(stderr, _("%s: archive location \"%s\" does not exist\n"),
progname, archiveLocation);
exit(2);
}
@@ -146,19 +146,19 @@ CleanupPriorWALFiles(void)
printf("%s\n", WALFilePath);
if (debug)
fprintf(stderr,
- "%s: file \"%s\" would be removed\n",
+ _("%s: file \"%s\" would be removed\n"),
progname, WALFilePath);
continue;
}
if (debug)
- fprintf(stderr, "%s: removing file \"%s\"\n",
+ fprintf(stderr, _("%s: removing file \"%s\"\n"),
progname, WALFilePath);
rc = unlink(WALFilePath);
if (rc != 0)
{
- fprintf(stderr, "%s: ERROR: could not remove file \"%s\": %s\n",
+ fprintf(stderr, _("%s: ERROR: could not remove file \"%s\": %s\n"),
progname, WALFilePath, strerror(errno));
break;
}
@@ -166,14 +166,14 @@ CleanupPriorWALFiles(void)
}
if (errno)
- fprintf(stderr, "%s: could not read archive location \"%s\": %s\n",
+ fprintf(stderr, _("%s: could not read archive location \"%s\": %s\n"),
progname, archiveLocation, strerror(errno));
if (closedir(xldir))
- fprintf(stderr, "%s: could not close archive location \"%s\": %s\n",
+ fprintf(stderr, _("%s: could not close archive location \"%s\": %s\n"),
progname, archiveLocation, strerror(errno));
}
else
- fprintf(stderr, "%s: could not open archive location \"%s\": %s\n",
+ fprintf(stderr, _("%s: could not open archive location \"%s\": %s\n"),
progname, archiveLocation, strerror(errno));
}
@@ -246,8 +246,8 @@ SetWALFileNameForCleanup(void)
if (!fnameOK)
{
- fprintf(stderr, "%s: invalid filename input\n", progname);
- fprintf(stderr, "Try \"%s --help\" for more information.\n", progname);
+ fprintf(stderr, _("%s: invalid filename input\n"), progname);
+ fprintf(stderr, _("Try \"%s --help\" for more information.\n"), progname);
exit(2);
}
}
@@ -260,25 +260,25 @@ SetWALFileNameForCleanup(void)
static void
usage(void)
{
- printf("%s removes older WAL files from PostgreSQL archives.\n\n", progname);
- printf("Usage:\n");
- printf(" %s [OPTION]... ARCHIVELOCATION OLDESTKEPTWALFILE\n", progname);
- printf("\nOptions:\n");
- printf(" -d generate debug output (verbose mode)\n");
- printf(" -n dry run, show the names of the files that would be removed\n");
- printf(" -V, --version output version information, then exit\n");
- printf(" -x EXT clean up files if they have this extension\n");
- printf(" -?, --help show this help, then exit\n");
- printf("\n"
- "For use as archive_cleanup_command in recovery.conf when standby_mode = on:\n"
- " archive_cleanup_command = 'pg_archivecleanup [OPTION]... ARCHIVELOCATION %%r'\n"
- "e.g.\n"
- " archive_cleanup_command = 'pg_archivecleanup /mnt/server/archiverdir %%r'\n");
- printf("\n"
- "Or for use as a standalone archive cleaner:\n"
- "e.g.\n"
- " pg_archivecleanup /mnt/server/archiverdir 000000010000000000000010.00000020.backup\n");
- printf("\nReport bugs to <pgsql-bugs@postgresql.org>.\n");
+ printf(_("%s removes older WAL files from PostgreSQL archives.\n\n"), progname);
+ printf(_("Usage:\n"));
+ printf(_(" %s [OPTION]... ARCHIVELOCATION OLDESTKEPTWALFILE\n"), progname);
+ printf(_("\nOptions:\n"));
+ printf(_(" -d generate debug output (verbose mode)\n"));
+ printf(_(" -n dry run, show the names of the files that would be removed\n"));
+ printf(_(" -V, --version output version information, then exit\n"));
+ printf(_(" -x EXT clean up files if they have this extension\n"));
+ printf(_(" -?, --help show this help, then exit\n"));
+ printf(_("\n"
+ "For use as archive_cleanup_command in recovery.conf when standby_mode = on:\n"
+ " archive_cleanup_command = 'pg_archivecleanup [OPTION]... ARCHIVELOCATION %%r'\n"
+ "e.g.\n"
+ " archive_cleanup_command = 'pg_archivecleanup /mnt/server/archiverdir %%r'\n"));
+ printf(_("\n"
+ "Or for use as a standalone archive cleaner:\n"
+ "e.g.\n"
+ " pg_archivecleanup /mnt/server/archiverdir 000000010000000000000010.00000020.backup\n"));
+ printf(_("\nReport bugs to <pgsql-bugs@postgresql.org>.\n"));
}
/*------------ MAIN ----------------------------------------*/
@@ -287,6 +287,7 @@ main(int argc, char **argv)
{
int c;
+ set_pglocale_pgservice(argv[0], PG_TEXTDOMAIN("pg_archivecleanup"));
progname = get_progname(argv[0]);
if (argc > 1)
@@ -318,7 +319,7 @@ main(int argc, char **argv)
* from xlogfile names */
break;
default:
- fprintf(stderr, "Try \"%s --help\" for more information.\n", progname);
+ fprintf(stderr, _("Try \"%s --help\" for more information.\n"), progname);
exit(2);
break;
}
@@ -338,8 +339,8 @@ main(int argc, char **argv)
}
else
{
- fprintf(stderr, "%s: must specify archive location\n", progname);
- fprintf(stderr, "Try \"%s --help\" for more information.\n", progname);
+ fprintf(stderr, _("%s: must specify archive location\n"), progname);
+ fprintf(stderr, _("Try \"%s --help\" for more information.\n"), progname);
exit(2);
}
@@ -350,15 +351,15 @@ main(int argc, char **argv)
}
else
{
- fprintf(stderr, "%s: must specify restartfilename\n", progname);
- fprintf(stderr, "Try \"%s --help\" for more information.\n", progname);
+ fprintf(stderr, _("%s: must specify restartfilename\n"), progname);
+ fprintf(stderr, _("Try \"%s --help\" for more information.\n"), progname);
exit(2);
}
if (optind < argc)
{
- fprintf(stderr, "%s: too many parameters\n", progname);
- fprintf(stderr, "Try \"%s --help\" for more information.\n", progname);
+ fprintf(stderr, _("%s: too many parameters\n"), progname);
+ fprintf(stderr, _("Try \"%s --help\" for more information.\n"), progname);
exit(2);
}
@@ -376,7 +377,7 @@ main(int argc, char **argv)
{
snprintf(WALFilePath, MAXPGPATH, "%s/%s",
archiveLocation, exclusiveCleanupFileName);
- fprintf(stderr, "%s: keep WAL file \"%s\" and later\n",
+ fprintf(stderr, _("%s: keep WAL file \"%s\" and later\n"),
progname, WALFilePath);
}
--
2.10.1
[text/x-patch] 0002-pg_test_fsync-Add-NLS.patch (7.2K, ../bd794aca-572a-ac22-293c-3ea548881b76@2ndquadrant.com/3-0002-pg_test_fsync-Add-NLS.patch)
download | inline diff:
From 9a2254f56ad99f4fbc413002a859d7836eb24e90 Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <peter_e@gmx.net>
Date: Fri, 14 Oct 2016 12:00:00 -0400
Subject: [PATCH 2/7] pg_test_fsync: Add NLS
---
src/bin/pg_test_fsync/nls.mk | 5 +++
src/bin/pg_test_fsync/pg_test_fsync.c | 69 ++++++++++++++++++-----------------
2 files changed, 40 insertions(+), 34 deletions(-)
create mode 100644 src/bin/pg_test_fsync/nls.mk
diff --git a/src/bin/pg_test_fsync/nls.mk b/src/bin/pg_test_fsync/nls.mk
new file mode 100644
index 0000000..6c95731
--- /dev/null
+++ b/src/bin/pg_test_fsync/nls.mk
@@ -0,0 +1,5 @@
+# src/bin/pg_test_fsync/nls.mk
+CATALOG_NAME = pg_test_fsync
+AVAIL_LANGUAGES =
+GETTEXT_FILES = pg_test_fsync.c
+GETTEXT_TRIGGERS = die
diff --git a/src/bin/pg_test_fsync/pg_test_fsync.c b/src/bin/pg_test_fsync/pg_test_fsync.c
index c842762..daee4a8 100644
--- a/src/bin/pg_test_fsync/pg_test_fsync.c
+++ b/src/bin/pg_test_fsync/pg_test_fsync.c
@@ -44,7 +44,7 @@ do { \
if (CreateThread(NULL, 0, process_alarm, NULL, 0, NULL) == \
INVALID_HANDLE_VALUE) \
{ \
- fprintf(stderr, "Cannot create thread for alarm\n"); \
+ fprintf(stderr, _("Cannot create thread for alarm\n")); \
exit(1); \
} \
gettimeofday(&start_t, NULL); \
@@ -96,6 +96,7 @@ static void die(const char *str);
int
main(int argc, char *argv[])
{
+ set_pglocale_pgservice(argv[0], PG_TEXTDOMAIN("pg_test_fsync"));
progname = get_progname(argv[0]);
handle_args(argc, argv);
@@ -148,7 +149,7 @@ handle_args(int argc, char *argv[])
{
if (strcmp(argv[1], "--help") == 0 || strcmp(argv[1], "-?") == 0)
{
- printf("Usage: %s [-f FILENAME] [-s SECS-PER-TEST]\n", progname);
+ printf(_("Usage: %s [-f FILENAME] [-s SECS-PER-TEST]\n"), progname);
exit(0);
}
if (strcmp(argv[1], "--version") == 0 || strcmp(argv[1], "-V") == 0)
@@ -172,7 +173,7 @@ handle_args(int argc, char *argv[])
break;
default:
- fprintf(stderr, "Try \"%s --help\" for more information.\n",
+ fprintf(stderr, _("Try \"%s --help\" for more information.\n"),
progname);
exit(1);
break;
@@ -182,18 +183,18 @@ handle_args(int argc, char *argv[])
if (argc > optind)
{
fprintf(stderr,
- "%s: too many command-line arguments (first is \"%s\")\n",
+ _("%s: too many command-line arguments (first is \"%s\")\n"),
progname, argv[optind]);
- fprintf(stderr, "Try \"%s --help\" for more information.\n",
+ fprintf(stderr, _("Try \"%s --help\" for more information.\n"),
progname);
exit(1);
}
- printf("%d seconds per test\n", secs_per_test);
+ printf(_("%d seconds per test\n"), secs_per_test);
#if PG_O_DIRECT != 0
- printf("O_DIRECT supported on this platform for open_datasync and open_sync.\n");
+ printf(_("O_DIRECT supported on this platform for open_datasync and open_sync.\n"));
#else
- printf("Direct I/O is not supported on this platform.\n");
+ printf(_("Direct I/O is not supported on this platform.\n"));
#endif
}
@@ -239,10 +240,10 @@ test_sync(int writes_per_op)
bool fs_warning = false;
if (writes_per_op == 1)
- printf("\nCompare file sync methods using one %dkB write:\n", XLOG_BLCKSZ_K);
+ printf(_("\nCompare file sync methods using one %dkB write:\n"), XLOG_BLCKSZ_K);
else
- printf("\nCompare file sync methods using two %dkB writes:\n", XLOG_BLCKSZ_K);
- printf("(in wal_sync_method preference order, except fdatasync is Linux's default)\n");
+ printf(_("\nCompare file sync methods using two %dkB writes:\n"), XLOG_BLCKSZ_K);
+ printf(_("(in wal_sync_method preference order, except fdatasync is Linux's default)\n"));
/*
* Test open_datasync if available
@@ -271,7 +272,7 @@ test_sync(int writes_per_op)
close(tmpfile);
}
#else
- printf(NA_FORMAT, "n/a\n");
+ printf(NA_FORMAT, _("n/a\n"));
#endif
/*
@@ -296,7 +297,7 @@ test_sync(int writes_per_op)
STOP_TIMER;
close(tmpfile);
#else
- printf(NA_FORMAT, "n/a\n");
+ printf(NA_FORMAT, _("n/a\n"));
#endif
/*
@@ -344,7 +345,7 @@ test_sync(int writes_per_op)
STOP_TIMER;
close(tmpfile);
#else
- printf(NA_FORMAT, "n/a\n");
+ printf(NA_FORMAT, _("n/a\n"));
#endif
/*
@@ -356,7 +357,7 @@ test_sync(int writes_per_op)
#ifdef OPEN_SYNC_FLAG
if ((tmpfile = open(filename, O_RDWR | OPEN_SYNC_FLAG | PG_O_DIRECT, 0)) == -1)
{
- printf(NA_FORMAT, "n/a*\n");
+ printf(NA_FORMAT, _("n/a*\n"));
fs_warning = true;
}
else
@@ -381,28 +382,28 @@ test_sync(int writes_per_op)
close(tmpfile);
}
#else
- printf(NA_FORMAT, "n/a\n");
+ printf(NA_FORMAT, _("n/a\n"));
#endif
if (fs_warning)
{
- printf("* This file system and its mount options do not support direct\n");
- printf("I/O, e.g. ext4 in journaled mode.\n");
+ printf(_("* This file system and its mount options do not support direct\n"
+ " I/O, e.g. ext4 in journaled mode.\n"));
}
}
static void
test_open_syncs(void)
{
- printf("\nCompare open_sync with different write sizes:\n");
- printf("(This is designed to compare the cost of writing 16kB in different write\n"
- "open_sync sizes.)\n");
-
- test_open_sync(" 1 * 16kB open_sync write", 16);
- test_open_sync(" 2 * 8kB open_sync writes", 8);
- test_open_sync(" 4 * 4kB open_sync writes", 4);
- test_open_sync(" 8 * 2kB open_sync writes", 2);
- test_open_sync("16 * 1kB open_sync writes", 1);
+ printf(_("\nCompare open_sync with different write sizes:\n"));
+ printf(_("(This is designed to compare the cost of writing 16kB in different write\n"
+ "open_sync sizes.)\n"));
+
+ test_open_sync(_(" 1 * 16kB open_sync write"), 16);
+ test_open_sync(_(" 2 * 8kB open_sync writes"), 8);
+ test_open_sync(_(" 4 * 4kB open_sync writes"), 4);
+ test_open_sync(_(" 8 * 2kB open_sync writes"), 2);
+ test_open_sync(_("16 * 1kB open_sync writes"), 1);
}
/*
@@ -422,7 +423,7 @@ test_open_sync(const char *msg, int writes_size)
#ifdef OPEN_SYNC_FLAG
if ((tmpfile = open(filename, O_RDWR | OPEN_SYNC_FLAG | PG_O_DIRECT, 0)) == -1)
- printf(NA_FORMAT, "n/a*\n");
+ printf(NA_FORMAT, _("n/a*\n"));
else
{
START_TIMER;
@@ -439,7 +440,7 @@ test_open_sync(const char *msg, int writes_size)
close(tmpfile);
}
#else
- printf(NA_FORMAT, "n/a\n");
+ printf(NA_FORMAT, _("n/a\n"));
#endif
}
@@ -455,9 +456,9 @@ test_file_descriptor_sync(void)
* against the same file. Possibly this should be done with writethrough
* on platforms which support it.
*/
- printf("\nTest if fsync on non-write file descriptor is honored:\n");
- printf("(If the times are similar, fsync() can sync data written on a different\n"
- "descriptor.)\n");
+ printf(_("\nTest if fsync on non-write file descriptor is honored:\n"));
+ printf(_("(If the times are similar, fsync() can sync data written on a different\n"
+ "descriptor.)\n"));
/*
* first write, fsync and close, which is the normal behavior without
@@ -521,7 +522,7 @@ test_non_sync(void)
/*
* Test a simple write without fsync
*/
- printf("\nNon-sync'ed %dkB writes:\n", XLOG_BLCKSZ_K);
+ printf(_("\nNon-sync'ed %dkB writes:\n"), XLOG_BLCKSZ_K);
printf(LABEL_FORMAT, "write");
fflush(stdout);
@@ -598,6 +599,6 @@ process_alarm(LPVOID param)
static void
die(const char *str)
{
- fprintf(stderr, "%s: %s\n", str, strerror(errno));
+ fprintf(stderr, _("%s: %s\n"), _(str), strerror(errno));
exit(1);
}
--
2.10.1
[text/x-patch] 0003-pg_test_timing-Add-NLS.patch (6.1K, ../bd794aca-572a-ac22-293c-3ea548881b76@2ndquadrant.com/4-0003-pg_test_timing-Add-NLS.patch)
download | inline diff:
From 793b52b88dff818fa41e7c4c1180292e49681fcc Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <peter_e@gmx.net>
Date: Fri, 14 Oct 2016 12:00:00 -0400
Subject: [PATCH 3/7] pg_test_timing: Add NLS
---
doc/src/sgml/ref/pgtesttiming.sgml | 16 ++++++++--------
src/bin/pg_test_timing/nls.mk | 4 ++++
src/bin/pg_test_timing/pg_test_timing.c | 28 ++++++++++++++++------------
3 files changed, 28 insertions(+), 20 deletions(-)
create mode 100644 src/bin/pg_test_timing/nls.mk
diff --git a/doc/src/sgml/ref/pgtesttiming.sgml b/doc/src/sgml/ref/pgtesttiming.sgml
index f07a060..e3539cf 100644
--- a/doc/src/sgml/ref/pgtesttiming.sgml
+++ b/doc/src/sgml/ref/pgtesttiming.sgml
@@ -96,9 +96,9 @@ <title>Interpreting results</title>
<screen>
Testing timing overhead for 3 seconds.
-Per loop time including overhead: 35.96 nsec
+Per loop time including overhead: 35.96 ns
Histogram of timing durations:
-< usec % of total count
+ < us % of total count
1 96.40465 80435604
2 3.59518 2999652
4 0.00015 126
@@ -109,9 +109,9 @@ <title>Interpreting results</title>
<para>
Note that different units are used for the per loop time than the
- histogram. The loop can have resolution within a few nanoseconds (nsec),
+ histogram. The loop can have resolution within a few nanoseconds (ns),
while the individual timing calls can only resolve down to one microsecond
- (usec).
+ (us).
</para>
</refsect2>
@@ -157,9 +157,9 @@ <title>Changing time sources</title>
tsc hpet acpi_pm
# echo acpi_pm > /sys/devices/system/clocksource/clocksource0/current_clocksource
# pg_test_timing
-Per loop time including overhead: 722.92 nsec
+Per loop time including overhead: 722.92 ns
Histogram of timing durations:
-< usec % of total count
+ < us % of total count
1 27.84870 1155682
2 72.05956 2990371
4 0.07810 3241
@@ -170,7 +170,7 @@ <title>Changing time sources</title>
<para>
In this configuration, the sample <command>EXPLAIN ANALYZE</command> above
- takes 115.9 ms. That's 1061 nsec of timing overhead, again a small multiple
+ takes 115.9 ms. That's 1061 ns of timing overhead, again a small multiple
of what's measured directly by this utility. That much timing overhead
means the actual query itself is only taking a tiny fraction of the
accounted for time, most of it is being consumed in overhead instead. In
@@ -211,7 +211,7 @@ <title>Changing time sources</title>
Testing timing overhead for 3 seconds.
Per timing duration including loop overhead: 97.75 ns
Histogram of timing durations:
-< usec % of total count
+ < us % of total count
1 90.23734 27694571
2 9.75277 2993204
4 0.00981 3010
diff --git a/src/bin/pg_test_timing/nls.mk b/src/bin/pg_test_timing/nls.mk
new file mode 100644
index 0000000..e12ea5c
--- /dev/null
+++ b/src/bin/pg_test_timing/nls.mk
@@ -0,0 +1,4 @@
+# src/bin/pg_test_timing/nls.mk
+CATALOG_NAME = pg_test_timing
+AVAIL_LANGUAGES =
+GETTEXT_FILES = pg_test_timing.c
diff --git a/src/bin/pg_test_timing/pg_test_timing.c b/src/bin/pg_test_timing/pg_test_timing.c
index e5c11de..2f1ab7c 100644
--- a/src/bin/pg_test_timing/pg_test_timing.c
+++ b/src/bin/pg_test_timing/pg_test_timing.c
@@ -25,6 +25,7 @@ main(int argc, char *argv[])
{
uint64 loop_count;
+ set_pglocale_pgservice(argv[0], PG_TEXTDOMAIN("pg_test_timing"));
progname = get_progname(argv[0]);
handle_args(argc, argv);
@@ -51,7 +52,7 @@ handle_args(int argc, char *argv[])
{
if (strcmp(argv[1], "--help") == 0 || strcmp(argv[1], "-?") == 0)
{
- printf("Usage: %s [-d DURATION]\n", progname);
+ printf(_("Usage: %s [-d DURATION]\n"), progname);
exit(0);
}
if (strcmp(argv[1], "--version") == 0 || strcmp(argv[1], "-V") == 0)
@@ -71,7 +72,7 @@ handle_args(int argc, char *argv[])
break;
default:
- fprintf(stderr, "Try \"%s --help\" for more information.\n",
+ fprintf(stderr, _("Try \"%s --help\" for more information.\n"),
progname);
exit(1);
break;
@@ -81,23 +82,26 @@ handle_args(int argc, char *argv[])
if (argc > optind)
{
fprintf(stderr,
- "%s: too many command-line arguments (first is \"%s\")\n",
+ _("%s: too many command-line arguments (first is \"%s\")\n"),
progname, argv[optind]);
- fprintf(stderr, "Try \"%s --help\" for more information.\n",
+ fprintf(stderr, _("Try \"%s --help\" for more information.\n"),
progname);
exit(1);
}
if (test_duration > 0)
{
- printf("Testing timing overhead for %d seconds.\n", test_duration);
+ printf(ngettext("Testing timing overhead for %d second.\n",
+ "Testing timing overhead for %d seconds.\n",
+ test_duration),
+ test_duration);
}
else
{
fprintf(stderr,
- "%s: duration must be a positive integer (duration is \"%d\")\n",
+ _("%s: duration must be a positive integer (duration is \"%d\")\n"),
progname, test_duration);
- fprintf(stderr, "Try \"%s --help\" for more information.\n",
+ fprintf(stderr, _("Try \"%s --help\" for more information.\n"),
progname);
exit(1);
}
@@ -133,8 +137,8 @@ test_timing(int32 duration)
/* Did time go backwards? */
if (diff < 0)
{
- printf("Detected clock going backwards in time.\n");
- printf("Time warp: %d microseconds\n", diff);
+ fprintf(stderr, _("Detected clock going backwards in time.\n"));
+ fprintf(stderr, _("Time warp: %d ms\n"), diff);
exit(1);
}
@@ -157,7 +161,7 @@ test_timing(int32 duration)
INSTR_TIME_SUBTRACT(end_time, start_time);
- printf("Per loop time including overhead: %0.2f nsec\n",
+ printf(_("Per loop time including overhead: %0.2f ns\n"),
INSTR_TIME_GET_DOUBLE(end_time) * 1e9 / loop_count);
return loop_count;
@@ -173,8 +177,8 @@ output(uint64 loop_count)
while (max_bit > 0 && histogram[max_bit] == 0)
max_bit--;
- printf("Histogram of timing durations:\n");
- printf("%6s %10s %10s\n", "< usec", "% of total", "count");
+ printf(_("Histogram of timing durations:\n"));
+ printf("%6s %10s %10s\n", _("< us"), _("% of total"), _("count"));
for (i = 0; i <= max_bit; i++)
{
--
2.10.1
[text/x-patch] 0004-pg_upgrade-Add-NLS.patch (10.4K, ../bd794aca-572a-ac22-293c-3ea548881b76@2ndquadrant.com/5-0004-pg_upgrade-Add-NLS.patch)
download | inline diff:
From 36ddce4817502758fb82c86a26e8c1113be508d1 Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <peter_e@gmx.net>
Date: Fri, 14 Oct 2016 12:00:00 -0400
Subject: [PATCH 4/7] pg_upgrade: Add NLS
---
src/bin/pg_upgrade/function.c | 2 +-
src/bin/pg_upgrade/nls.mk | 12 +++++
src/bin/pg_upgrade/option.c | 101 +++++++++++++++++++--------------------
src/bin/pg_upgrade/pg_upgrade.c | 1 +
src/bin/pg_upgrade/relfilenode.c | 6 ++-
src/bin/pg_upgrade/server.c | 4 +-
src/bin/pg_upgrade/util.c | 4 +-
7 files changed, 71 insertions(+), 59 deletions(-)
create mode 100644 src/bin/pg_upgrade/nls.mk
diff --git a/src/bin/pg_upgrade/function.c b/src/bin/pg_upgrade/function.c
index 3009340..5b60f9f 100644
--- a/src/bin/pg_upgrade/function.c
+++ b/src/bin/pg_upgrade/function.c
@@ -252,7 +252,7 @@ check_loadable_libraries(void)
if (script == NULL && (script = fopen_priv(output_path, "w")) == NULL)
pg_fatal("could not open file \"%s\": %s\n",
output_path, strerror(errno));
- fprintf(script, "could not load library \"%s\":\n%s\n",
+ fprintf(script, _("could not load library \"%s\":\n%s\n"),
lib,
PQerrorMessage(conn));
}
diff --git a/src/bin/pg_upgrade/nls.mk b/src/bin/pg_upgrade/nls.mk
new file mode 100644
index 0000000..9c468f8
--- /dev/null
+++ b/src/bin/pg_upgrade/nls.mk
@@ -0,0 +1,12 @@
+# src/bin/pg_upgrade/nls.mk
+CATALOG_NAME = pg_upgrade
+AVAIL_LANGUAGES =
+GETTEXT_FILES = check.c controldata.c dump.c exec.c file.c function.c \
+ info.c option.c parallel.c pg_upgrade.c relfilenode.c \
+ server.c tablespace.c util.c version.c
+GETTEXT_TRIGGERS = pg_fatal pg_log:2 prep_status report_status:2
+GETTEXT_FLAGS = \
+ pg_fatal:1:c-format \
+ pg_log:2:c-format \
+ prep_status:1:c-format \
+ report_stats:2:c-format
diff --git a/src/bin/pg_upgrade/option.c b/src/bin/pg_upgrade/option.c
index 2e9a40c..12a49ff 100644
--- a/src/bin/pg_upgrade/option.c
+++ b/src/bin/pg_upgrade/option.c
@@ -240,13 +240,13 @@ parseCommandLine(int argc, char *argv[])
/* Get values from env if not already set */
check_required_directory(&old_cluster.bindir, NULL, "PGBINOLD", "-b",
- "old cluster binaries reside");
+ _("old cluster binaries reside"));
check_required_directory(&new_cluster.bindir, NULL, "PGBINNEW", "-B",
- "new cluster binaries reside");
+ _("new cluster binaries reside"));
check_required_directory(&old_cluster.pgdata, &old_cluster.pgconfig,
- "PGDATAOLD", "-d", "old cluster data resides");
+ "PGDATAOLD", "-d", _("old cluster data resides"));
check_required_directory(&new_cluster.pgdata, &new_cluster.pgconfig,
- "PGDATANEW", "-D", "new cluster data resides");
+ "PGDATANEW", "-D", _("new cluster data resides"));
#ifdef WIN32
@@ -275,56 +275,53 @@ parseCommandLine(int argc, char *argv[])
static void
usage(void)
{
- printf(_("pg_upgrade upgrades a PostgreSQL cluster to a different major version.\n\
-\nUsage:\n\
- pg_upgrade [OPTION]...\n\
-\n\
-Options:\n\
- -b, --old-bindir=BINDIR old cluster executable directory\n\
- -B, --new-bindir=BINDIR new cluster executable directory\n\
- -c, --check check clusters only, don't change any data\n\
- -d, --old-datadir=DATADIR old cluster data directory\n\
- -D, --new-datadir=DATADIR new cluster data directory\n\
- -j, --jobs number of simultaneous processes or threads to use\n\
- -k, --link link instead of copying files to new cluster\n\
- -o, --old-options=OPTIONS old cluster options to pass to the server\n\
- -O, --new-options=OPTIONS new cluster options to pass to the server\n\
- -p, --old-port=PORT old cluster port number (default %d)\n\
- -P, --new-port=PORT new cluster port number (default %d)\n\
- -r, --retain retain SQL and log files after success\n\
- -U, --username=NAME cluster superuser (default \"%s\")\n\
- -v, --verbose enable verbose internal logging\n\
- -V, --version display version information, then exit\n\
- -?, --help show this help, then exit\n\
-\n\
-Before running pg_upgrade you must:\n\
- create a new database cluster (using the new version of initdb)\n\
- shutdown the postmaster servicing the old cluster\n\
- shutdown the postmaster servicing the new cluster\n\
-\n\
-When you run pg_upgrade, you must provide the following information:\n\
- the data directory for the old cluster (-d DATADIR)\n\
- the data directory for the new cluster (-D DATADIR)\n\
- the \"bin\" directory for the old version (-b BINDIR)\n\
- the \"bin\" directory for the new version (-B BINDIR)\n\
-\n\
-For example:\n\
- pg_upgrade -d oldCluster/data -D newCluster/data -b oldCluster/bin -B newCluster/bin\n\
-or\n"), old_cluster.port, new_cluster.port, os_info.user);
+ printf(_("pg_upgrade upgrades a PostgreSQL cluster to a different major version.\n\n"));
+ printf(_("Usage:\n"));
+ printf(_(" pg_upgrade [OPTION]...\n\n"));
+ printf(_("Options:\n"));
+ printf(_(" -b, --old-bindir=BINDIR old cluster executable directory\n"));
+ printf(_(" -B, --new-bindir=BINDIR new cluster executable directory\n"));
+ printf(_(" -c, --check check clusters only, don't change any data\n"));
+ printf(_(" -d, --old-datadir=DATADIR old cluster data directory\n"));
+ printf(_(" -D, --new-datadir=DATADIR new cluster data directory\n"));
+ printf(_(" -j, --jobs number of simultaneous processes or threads to use\n"));
+ printf(_(" -k, --link link instead of copying files to new cluster\n"));
+ printf(_(" -o, --old-options=OPTIONS old cluster options to pass to the server\n"));
+ printf(_(" -O, --new-options=OPTIONS new cluster options to pass to the server\n"));
+ printf(_(" -p, --old-port=PORT old cluster port number (default %d)\n"), old_cluster.port);
+ printf(_(" -P, --new-port=PORT new cluster port number (default %d)\n"), new_cluster.port);
+ printf(_(" -r, --retain retain SQL and log files after success\n"));
+ printf(_(" -U, --username=NAME cluster superuser (default \"%s\")\n"), os_info.user);
+ printf(_(" -v, --verbose enable verbose internal logging\n"));
+ printf(_(" -V, --version display version information, then exit\n"));
+ printf(_(" -?, --help show this help, then exit\n"));
+ printf(_("\n"
+ "Before running pg_upgrade you must:\n"
+ " create a new database cluster (using the new version of initdb)\n"
+ " shutdown the postmaster servicing the old cluster\n"
+ " shutdown the postmaster servicing the new cluster\n"));
+ printf(_("\n"
+ "When you run pg_upgrade, you must provide the following information:\n"
+ " the data directory for the old cluster (-d DATADIR)\n"
+ " the data directory for the new cluster (-D DATADIR)\n"
+ " the \"bin\" directory for the old version (-b BINDIR)\n"
+ " the \"bin\" directory for the new version (-B BINDIR)\n"));
+ printf(_("\n"
+ "For example:\n"
+ " pg_upgrade -d oldCluster/data -D newCluster/data -b oldCluster/bin -B newCluster/bin\n"
+ "or\n"));
#ifndef WIN32
- printf(_("\
- $ export PGDATAOLD=oldCluster/data\n\
- $ export PGDATANEW=newCluster/data\n\
- $ export PGBINOLD=oldCluster/bin\n\
- $ export PGBINNEW=newCluster/bin\n\
- $ pg_upgrade\n"));
+ printf(_(" $ export PGDATAOLD=oldCluster/data\n"
+ " $ export PGDATANEW=newCluster/data\n"
+ " $ export PGBINOLD=oldCluster/bin\n"
+ " $ export PGBINNEW=newCluster/bin\n"
+ " $ pg_upgrade\n"));
#else
- printf(_("\
- C:\\> set PGDATAOLD=oldCluster/data\n\
- C:\\> set PGDATANEW=newCluster/data\n\
- C:\\> set PGBINOLD=oldCluster/bin\n\
- C:\\> set PGBINNEW=newCluster/bin\n\
- C:\\> pg_upgrade\n"));
+ printf(_(" C:\\> set PGDATAOLD=oldCluster/data\n"
+ " C:\\> set PGDATANEW=newCluster/data\n"
+ " C:\\> set PGBINOLD=oldCluster/bin\n"
+ " C:\\> set PGBINNEW=newCluster/bin\n"
+ " C:\\> pg_upgrade\n"));
#endif
printf(_("\nReport bugs to <pgsql-bugs@postgresql.org>.\n"));
}
diff --git a/src/bin/pg_upgrade/pg_upgrade.c b/src/bin/pg_upgrade/pg_upgrade.c
index 90c0720..0207d85 100644
--- a/src/bin/pg_upgrade/pg_upgrade.c
+++ b/src/bin/pg_upgrade/pg_upgrade.c
@@ -75,6 +75,7 @@ main(int argc, char **argv)
char *deletion_script_file_name = NULL;
bool live_check = false;
+ set_pglocale_pgservice(argv[0], PG_TEXTDOMAIN("pg_upgrade"));
parseCommandLine(argc, argv);
get_restricted_token(os_info.progname);
diff --git a/src/bin/pg_upgrade/relfilenode.c b/src/bin/pg_upgrade/relfilenode.c
index c8c2a28..79e41d1 100644
--- a/src/bin/pg_upgrade/relfilenode.c
+++ b/src/bin/pg_upgrade/relfilenode.c
@@ -30,8 +30,10 @@ void
transfer_all_new_tablespaces(DbInfoArr *old_db_arr, DbInfoArr *new_db_arr,
char *old_pgdata, char *new_pgdata)
{
- pg_log(PG_REPORT, "%s user relation files\n",
- user_opts.transfer_mode == TRANSFER_MODE_LINK ? "Linking" : "Copying");
+ if (user_opts.transfer_mode == TRANSFER_MODE_LINK)
+ pg_log(PG_REPORT, "Linking user relation files\n");
+ else
+ pg_log(PG_REPORT, "Copying user relation files\n");
/*
* Transferring files by tablespace is tricky because a single database
diff --git a/src/bin/pg_upgrade/server.c b/src/bin/pg_upgrade/server.c
index 12432bb..4892934 100644
--- a/src/bin/pg_upgrade/server.c
+++ b/src/bin/pg_upgrade/server.c
@@ -36,7 +36,7 @@ connectToServer(ClusterInfo *cluster, const char *db_name)
if (conn)
PQfinish(conn);
- printf("Failure, exiting\n");
+ printf(_("Failure, exiting\n"));
exit(1);
}
@@ -136,7 +136,7 @@ executeQueryOrDie(PGconn *conn, const char *fmt,...)
PQerrorMessage(conn));
PQclear(result);
PQfinish(conn);
- printf("Failure, exiting\n");
+ printf(_("Failure, exiting\n"));
exit(1);
}
else
diff --git a/src/bin/pg_upgrade/util.c b/src/bin/pg_upgrade/util.c
index aadc1cd..b261fd6 100644
--- a/src/bin/pg_upgrade/util.c
+++ b/src/bin/pg_upgrade/util.c
@@ -133,7 +133,7 @@ pg_log_v(eLogType type, const char *fmt, va_list ap)
case PG_FATAL:
printf("\n%s", _(message));
- printf("Failure, exiting\n");
+ printf(_("Failure, exiting\n"));
exit(1);
break;
@@ -163,7 +163,7 @@ pg_fatal(const char *fmt,...)
va_start(args, fmt);
pg_log_v(PG_FATAL, fmt, args);
va_end(args);
- printf("Failure, exiting\n");
+ printf(_("Failure, exiting\n"));
exit(1);
}
--
2.10.1
[text/x-patch] 0005-pg_xlogdump-Add-NLS.patch (9.2K, ../bd794aca-572a-ac22-293c-3ea548881b76@2ndquadrant.com/6-0005-pg_xlogdump-Add-NLS.patch)
download | inline diff:
From 6d6c6c51251893bcbfc72edc6002580278b59c5b Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <peter_e@gmx.net>
Date: Sat, 15 Oct 2016 12:00:00 -0400
Subject: [PATCH 5/7] pg_xlogdump: Add NLS
---
src/bin/pg_xlogdump/nls.mk | 6 ++++
src/bin/pg_xlogdump/pg_xlogdump.c | 75 ++++++++++++++++++++-------------------
2 files changed, 44 insertions(+), 37 deletions(-)
create mode 100644 src/bin/pg_xlogdump/nls.mk
diff --git a/src/bin/pg_xlogdump/nls.mk b/src/bin/pg_xlogdump/nls.mk
new file mode 100644
index 0000000..2b254c3
--- /dev/null
+++ b/src/bin/pg_xlogdump/nls.mk
@@ -0,0 +1,6 @@
+# src/bin/pg_xlogdump/nls.mk
+CATALOG_NAME = pg_xlogdump
+AVAIL_LANGUAGES =
+GETTEXT_FILES = pg_xlogdump.c
+GETTEXT_TRIGGERS = fatal_error
+GETTEXT_FLAGS = fatal_error:1:c-format
diff --git a/src/bin/pg_xlogdump/pg_xlogdump.c b/src/bin/pg_xlogdump/pg_xlogdump.c
index 7490398..d070312 100644
--- a/src/bin/pg_xlogdump/pg_xlogdump.c
+++ b/src/bin/pg_xlogdump/pg_xlogdump.c
@@ -79,9 +79,9 @@ fatal_error(const char *fmt,...)
fflush(stdout);
- fprintf(stderr, "%s: FATAL: ", progname);
+ fprintf(stderr, _("%s: FATAL: "), progname);
va_start(args, fmt);
- vfprintf(stderr, fmt, args);
+ vfprintf(stderr, _(fmt), args);
va_end(args);
fputc('\n', stderr);
@@ -670,27 +670,27 @@ XLogDumpDisplayStats(XLogDumpConfig *config, XLogDumpStats *stats)
static void
usage(void)
{
- printf("%s decodes and displays PostgreSQL transaction logs for debugging.\n\n",
+ printf(_("%s decodes and displays PostgreSQL transaction logs for debugging.\n\n"),
progname);
- printf("Usage:\n");
- printf(" %s [OPTION]... [STARTSEG [ENDSEG]] \n", progname);
- printf("\nOptions:\n");
- printf(" -b, --bkp-details output detailed information about backup blocks\n");
- printf(" -e, --end=RECPTR stop reading at log position RECPTR\n");
- printf(" -f, --follow keep retrying after reaching end of WAL\n");
- printf(" -n, --limit=N number of records to display\n");
- printf(" -p, --path=PATH directory in which to find log segment files\n");
- printf(" (default: ./pg_wal)\n");
- printf(" -r, --rmgr=RMGR only show records generated by resource manager RMGR\n");
- printf(" use --rmgr=list to list valid resource manager names\n");
- printf(" -s, --start=RECPTR start reading at log position RECPTR\n");
- printf(" -t, --timeline=TLI timeline from which to read log records\n");
- printf(" (default: 1 or the value used in STARTSEG)\n");
- printf(" -V, --version output version information, then exit\n");
- printf(" -x, --xid=XID only show records with TransactionId XID\n");
- printf(" -z, --stats[=record] show statistics instead of records\n");
- printf(" (optionally, show per-record statistics)\n");
- printf(" -?, --help show this help, then exit\n");
+ printf(_("Usage:\n"));
+ printf(_(" %s [OPTION]... [STARTSEG [ENDSEG]] \n"), progname);
+ printf(_("\nOptions:\n"));
+ printf(_(" -b, --bkp-details output detailed information about backup blocks\n"));
+ printf(_(" -e, --end=RECPTR stop reading at log position RECPTR\n"));
+ printf(_(" -f, --follow keep retrying after reaching end of WAL\n"));
+ printf(_(" -n, --limit=N number of records to display\n"));
+ printf(_(" -p, --path=PATH directory in which to find log segment files\n"
+ " (default: ./pg_wal)\n"));
+ printf(_(" -r, --rmgr=RMGR only show records generated by resource manager RMGR\n"
+ " use --rmgr=list to list valid resource manager names\n"));
+ printf(_(" -s, --start=RECPTR start reading at log position RECPTR\n"));
+ printf(_(" -t, --timeline=TLI timeline from which to read log records\n"
+ " (default: 1 or the value used in STARTSEG)\n"));
+ printf(_(" -V, --version output version information, then exit\n"));
+ printf(_(" -x, --xid=XID only show records with TransactionId XID\n"));
+ printf(_(" -z, --stats[=record] show statistics instead of records\n"
+ " (optionally, show per-record statistics)\n"));
+ printf(_(" -?, --help show this help, then exit\n"));
}
int
@@ -725,6 +725,7 @@ main(int argc, char **argv)
int option;
int optindex = 0;
+ set_pglocale_pgservice(argv[0], PG_TEXTDOMAIN("pg_xlogdump"));
progname = get_progname(argv[0]);
memset(&private, 0, sizeof(XLogDumpPrivate));
@@ -748,7 +749,7 @@ main(int argc, char **argv)
if (argc <= 1)
{
- fprintf(stderr, "%s: no arguments specified\n", progname);
+ fprintf(stderr, _("%s: no arguments specified\n"), progname);
goto bad_argument;
}
@@ -763,7 +764,7 @@ main(int argc, char **argv)
case 'e':
if (sscanf(optarg, "%X/%X", &xlogid, &xrecoff) != 2)
{
- fprintf(stderr, "%s: could not parse end log position \"%s\"\n",
+ fprintf(stderr, _("%s: could not parse end log position \"%s\"\n"),
progname, optarg);
goto bad_argument;
}
@@ -779,7 +780,7 @@ main(int argc, char **argv)
case 'n':
if (sscanf(optarg, "%d", &config.stop_after_records) != 1)
{
- fprintf(stderr, "%s: could not parse limit \"%s\"\n",
+ fprintf(stderr, _("%s: could not parse limit \"%s\"\n"),
progname, optarg);
goto bad_argument;
}
@@ -808,7 +809,7 @@ main(int argc, char **argv)
if (config.filter_by_rmgr == -1)
{
- fprintf(stderr, "%s: resource manager \"%s\" does not exist\n",
+ fprintf(stderr, _("%s: resource manager \"%s\" does not exist\n"),
progname, optarg);
goto bad_argument;
}
@@ -817,7 +818,7 @@ main(int argc, char **argv)
case 's':
if (sscanf(optarg, "%X/%X", &xlogid, &xrecoff) != 2)
{
- fprintf(stderr, "%s: could not parse start log position \"%s\"\n",
+ fprintf(stderr, _("%s: could not parse start log position \"%s\"\n"),
progname, optarg);
goto bad_argument;
}
@@ -827,7 +828,7 @@ main(int argc, char **argv)
case 't':
if (sscanf(optarg, "%d", &private.timeline) != 1)
{
- fprintf(stderr, "%s: could not parse timeline \"%s\"\n",
+ fprintf(stderr, _("%s: could not parse timeline \"%s\"\n"),
progname, optarg);
goto bad_argument;
}
@@ -839,7 +840,7 @@ main(int argc, char **argv)
case 'x':
if (sscanf(optarg, "%u", &config.filter_by_xid) != 1)
{
- fprintf(stderr, "%s: could not parse \"%s\" as a valid xid\n",
+ fprintf(stderr, _("%s: could not parse \"%s\" as a valid xid\n"),
progname, optarg);
goto bad_argument;
}
@@ -854,7 +855,7 @@ main(int argc, char **argv)
config.stats_per_record = true;
else if (strcmp(optarg, "rmgr") != 0)
{
- fprintf(stderr, "%s: unrecognised argument to --stats: %s\n",
+ fprintf(stderr, _("%s: unrecognised argument to --stats: %s\n"),
progname, optarg);
goto bad_argument;
}
@@ -868,7 +869,7 @@ main(int argc, char **argv)
if ((optind + 2) < argc)
{
fprintf(stderr,
- "%s: too many command-line arguments (first is \"%s\")\n",
+ _("%s: too many command-line arguments (first is \"%s\")\n"),
progname, argv[optind + 2]);
goto bad_argument;
}
@@ -879,7 +880,7 @@ main(int argc, char **argv)
if (!verify_directory(private.inpath))
{
fprintf(stderr,
- "%s: path \"%s\" cannot be opened: %s\n",
+ _("%s: path \"%s\" cannot be opened: %s\n"),
progname, private.inpath, strerror(errno));
goto bad_argument;
}
@@ -917,7 +918,7 @@ main(int argc, char **argv)
else if (!XLByteInSeg(private.startptr, segno))
{
fprintf(stderr,
- "%s: start log position %X/%X is not inside file \"%s\"\n",
+ _("%s: start log position %X/%X is not inside file \"%s\"\n"),
progname,
(uint32) (private.startptr >> 32),
(uint32) private.startptr,
@@ -961,7 +962,7 @@ main(int argc, char **argv)
private.endptr != (segno + 1) * XLogSegSize)
{
fprintf(stderr,
- "%s: end log position %X/%X is not inside file \"%s\"\n",
+ _("%s: end log position %X/%X is not inside file \"%s\"\n"),
progname,
(uint32) (private.endptr >> 32),
(uint32) private.endptr,
@@ -973,7 +974,7 @@ main(int argc, char **argv)
/* we don't know what to print */
if (XLogRecPtrIsInvalid(private.startptr))
{
- fprintf(stderr, "%s: no start log position given.\n", progname);
+ fprintf(stderr, _("%s: no start log position given.\n"), progname);
goto bad_argument;
}
@@ -998,7 +999,7 @@ main(int argc, char **argv)
* a segment (e.g. we were used in file mode).
*/
if (first_record != private.startptr && (private.startptr % XLogSegSize) != 0)
- printf("first record is after %X/%X, at %X/%X, skipping over %u bytes\n",
+ printf(_("first record is after %X/%X, at %X/%X, skipping over %u bytes\n"),
(uint32) (private.startptr >> 32), (uint32) private.startptr,
(uint32) (first_record >> 32), (uint32) first_record,
(uint32) (first_record - private.startptr));
@@ -1057,6 +1058,6 @@ main(int argc, char **argv)
return EXIT_SUCCESS;
bad_argument:
- fprintf(stderr, "Try \"%s --help\" for more information.\n", progname);
+ fprintf(stderr, _("Try \"%s --help\" for more information.\n"), progname);
return EXIT_FAILURE;
}
--
2.10.1
view thread (12+ messages) latest in thread
Message-ID: <bd794aca-572a-ac22-293c-3ea548881b76@2ndquadrant.com>
Permalink: ../bd794aca-572a-ac22-293c-3ea548881b76@2ndquadrant.com/
Also on: postgresql.org/message-id/bd794aca-572a-ac22-293c-3ea548881b76@2ndquadrant.com
copy link · copy postgr.es · copy git am
reply Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-hackers@postgresql.org
Cc: peter.eisentraut@2ndquadrant.com
Subject: Re: add more NLS to bin
In-Reply-To: <bd794aca-572a-ac22-293c-3ea548881b76@2ndquadrant.com>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox