Add --help and --version options. Message cleanup. NLS.
This commit is contained in:
parent
d46e3dc00f
commit
606c9b9d4f
5
src/bin/pg_controldata/nls.mk
Normal file
5
src/bin/pg_controldata/nls.mk
Normal file
@ -0,0 +1,5 @@
|
||||
# $Header: /cvsroot/pgsql/src/bin/pg_controldata/nls.mk,v 1.1 2002/08/21 22:24:34 petere Exp $
|
||||
CATALOG_NAME := pg_controldata
|
||||
AVAIL_LANGUAGES := de
|
||||
GETTEXT_FILES := pg_controldata.c
|
||||
GETTEXT_TRIGGERS:= _
|
@ -6,7 +6,7 @@
|
||||
* copyright (c) Oliver Elphick <olly@lfix.co.uk>, 2001;
|
||||
* licence: BSD
|
||||
*
|
||||
* $Header: /cvsroot/pgsql/src/bin/pg_controldata/pg_controldata.c,v 1.2 2002/08/18 02:48:41 tgl Exp $
|
||||
* $Header: /cvsroot/pgsql/src/bin/pg_controldata/pg_controldata.c,v 1.3 2002/08/21 22:24:34 petere Exp $
|
||||
*/
|
||||
#include "postgres.h"
|
||||
|
||||
@ -15,9 +15,23 @@
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
#include <locale.h>
|
||||
#include <errno.h>
|
||||
|
||||
#include "catalog/pg_control.h"
|
||||
|
||||
#define _(x) gettext((x))
|
||||
|
||||
|
||||
static void
|
||||
usage(const char *progname)
|
||||
{
|
||||
printf(_("%s displays PostgreSQL database cluster control information.\n"), progname);
|
||||
printf(_("Usage:\n %s [DATADIR]\n\n"), progname);
|
||||
printf(_("If not data directory is specified, the environment variable PGDATA\nis used.\n\n"));
|
||||
printf(_("Report bugs to <pgsql-bugs@postgresql.org>.\n"));
|
||||
}
|
||||
|
||||
|
||||
static const char *
|
||||
dbState(DBState state)
|
||||
@ -35,7 +49,7 @@ dbState(DBState state)
|
||||
case DB_IN_PRODUCTION:
|
||||
return "IN_PRODUCTION";
|
||||
}
|
||||
return "unrecognized status code";
|
||||
return _("unrecognized status code");
|
||||
}
|
||||
|
||||
|
||||
@ -50,6 +64,32 @@ main(int argc, char *argv[])
|
||||
char pgctime_str[32];
|
||||
char ckpttime_str[32];
|
||||
char *strftime_fmt = "%c";
|
||||
char *progname;
|
||||
|
||||
setlocale(LC_ALL, "");
|
||||
#ifdef ENABLE_NLS
|
||||
bindtextdomain("pg_controldata", LOCALEDIR);
|
||||
textdomain("pg_controldata");
|
||||
#endif
|
||||
|
||||
if (!strrchr(argv[0], '/'))
|
||||
progname = argv[0];
|
||||
else
|
||||
progname = strrchr(argv[0], '/') + 1;
|
||||
|
||||
if (argc > 1)
|
||||
{
|
||||
if (strcmp(argv[1], "--help") == 0 || strcmp(argv[1], "-?") == 0)
|
||||
{
|
||||
usage(progname);
|
||||
exit(0);
|
||||
}
|
||||
if (strcmp(argv[1], "--version") == 0 || strcmp(argv[1], "-V") == 0)
|
||||
{
|
||||
puts("pg_controldata (PostgreSQL) " PG_VERSION);
|
||||
exit(0);
|
||||
}
|
||||
}
|
||||
|
||||
if (argc > 1)
|
||||
DataDir = argv[1];
|
||||
@ -57,7 +97,7 @@ main(int argc, char *argv[])
|
||||
DataDir = getenv("PGDATA");
|
||||
if (DataDir == NULL)
|
||||
{
|
||||
fprintf(stderr, "no data directory specified\n");
|
||||
fprintf(stderr, _("%s: no data directory specified\n"), progname);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
@ -65,13 +105,15 @@ main(int argc, char *argv[])
|
||||
|
||||
if ((fd = open(ControlFilePath, O_RDONLY)) == -1)
|
||||
{
|
||||
perror("Failed to open $PGDATA/global/pg_control for reading");
|
||||
fprintf(stderr, _("%s: could not open file \"%s\" for reading (%s)\n"),
|
||||
progname, ControlFilePath, strerror(errno));
|
||||
exit(2);
|
||||
}
|
||||
|
||||
if (read(fd, &ControlFile, sizeof(ControlFileData)) != sizeof(ControlFileData))
|
||||
{
|
||||
perror("Failed to read $PGDATA/global/pg_control");
|
||||
fprintf(stderr, _("%s: could not read file \"%s\" (%s)\n"),
|
||||
progname, ControlFilePath, strerror(errno));
|
||||
exit(2);
|
||||
}
|
||||
close(fd);
|
||||
@ -84,9 +126,9 @@ main(int argc, char *argv[])
|
||||
FIN_CRC64(crc);
|
||||
|
||||
if (!EQ_CRC64(crc, ControlFile.crc))
|
||||
printf("WARNING: Calculated CRC checksum does not match value stored in file.\n"
|
||||
"Either the file is corrupt, or it has a different layout than this program\n"
|
||||
"is expecting. The results below are untrustworthy.\n\n");
|
||||
printf(_("WARNING: Calculated CRC checksum does not match value stored in file.\n"
|
||||
"Either the file is corrupt, or it has a different layout than this program\n"
|
||||
"is expecting. The results below are untrustworthy.\n\n"));
|
||||
|
||||
/*
|
||||
* Use variable for format to suppress overly-anal-retentive gcc warning
|
||||
@ -97,56 +139,33 @@ main(int argc, char *argv[])
|
||||
strftime(ckpttime_str, sizeof(ckpttime_str), strftime_fmt,
|
||||
localtime(&(ControlFile.checkPointCopy.time)));
|
||||
|
||||
printf("pg_control version number: %u\n"
|
||||
"Catalog version number: %u\n"
|
||||
"Database state: %s\n"
|
||||
"pg_control last modified: %s\n"
|
||||
"Current log file id: %u\n"
|
||||
"Next log file segment: %u\n"
|
||||
"Latest checkpoint location: %X/%X\n"
|
||||
"Prior checkpoint location: %X/%X\n"
|
||||
"Latest checkpoint's REDO location: %X/%X\n"
|
||||
"Latest checkpoint's UNDO location: %X/%X\n"
|
||||
"Latest checkpoint's StartUpID: %u\n"
|
||||
"Latest checkpoint's NextXID: %u\n"
|
||||
"Latest checkpoint's NextOID: %u\n"
|
||||
"Time of latest checkpoint: %s\n"
|
||||
"Database block size: %u\n"
|
||||
"Blocks per segment of large relation: %u\n"
|
||||
"Maximum length of names: %u\n"
|
||||
"Maximum number of function arguments: %u\n"
|
||||
"Date/time type storage: %s\n"
|
||||
"Maximum length of locale name: %u\n"
|
||||
"LC_COLLATE: %s\n"
|
||||
"LC_CTYPE: %s\n",
|
||||
printf(_("pg_control version number: %u\n"), ControlFile.pg_control_version);
|
||||
printf(_("Catalog version number: %u\n"), ControlFile.catalog_version_no);
|
||||
printf(_("Database cluster state: %s\n"), dbState(ControlFile.state));
|
||||
printf(_("pg_control last modified: %s\n"), pgctime_str);
|
||||
printf(_("Current log file ID: %u\n"), ControlFile.logId);
|
||||
printf(_("Next log file segment: %u\n"), ControlFile.logSeg);
|
||||
printf(_("Latest checkpoint location: %X/%X\n"),
|
||||
ControlFile.checkPoint.xlogid, ControlFile.checkPoint.xrecoff);
|
||||
printf(_("Prior checkpoint location: %X/%X\n"),
|
||||
ControlFile.prevCheckPoint.xlogid, ControlFile.prevCheckPoint.xrecoff);
|
||||
printf(_("Latest checkpoint's REDO location: %X/%X\n"),
|
||||
ControlFile.checkPointCopy.redo.xlogid, ControlFile.checkPointCopy.redo.xrecoff);
|
||||
printf(_("Latest checkpoint's UNDO location: %X/%X\n"),
|
||||
ControlFile.checkPointCopy.undo.xlogid, ControlFile.checkPointCopy.undo.xrecoff);
|
||||
printf(_("Latest checkpoint's StartUpID: %u\n"), ControlFile.checkPointCopy.ThisStartUpID);
|
||||
printf(_("Latest checkpoint's NextXID: %u\n"), ControlFile.checkPointCopy.nextXid);
|
||||
printf(_("Latest checkpoint's NextOID: %u\n"), ControlFile.checkPointCopy.nextOid);
|
||||
printf(_("Time of latest checkpoint: %s\n"), ckpttime_str);
|
||||
printf(_("Database block size: %u\n"), ControlFile.blcksz);
|
||||
printf(_("Blocks per segment of large relation: %u\n"), ControlFile.relseg_size);
|
||||
printf(_("Maximum length of identifiers: %u\n"), ControlFile.nameDataLen);
|
||||
printf(_("Maximum number of function arguments: %u\n"), ControlFile.funcMaxArgs);
|
||||
printf(_("Date/time type storage: %s\n"),
|
||||
(ControlFile.enableIntTimes ? _("64-bit integers") : _("Floating point")));
|
||||
printf(_("Maximum length of locale name: %u\n"), ControlFile.localeBuflen);
|
||||
printf(_("LC_COLLATE: %s\n"), ControlFile.lc_collate);
|
||||
printf(_("LC_CTYPE: %s\n"), ControlFile.lc_ctype);
|
||||
|
||||
ControlFile.pg_control_version,
|
||||
ControlFile.catalog_version_no,
|
||||
dbState(ControlFile.state),
|
||||
pgctime_str,
|
||||
ControlFile.logId,
|
||||
ControlFile.logSeg,
|
||||
ControlFile.checkPoint.xlogid,
|
||||
ControlFile.checkPoint.xrecoff,
|
||||
ControlFile.prevCheckPoint.xlogid,
|
||||
ControlFile.prevCheckPoint.xrecoff,
|
||||
ControlFile.checkPointCopy.redo.xlogid,
|
||||
ControlFile.checkPointCopy.redo.xrecoff,
|
||||
ControlFile.checkPointCopy.undo.xlogid,
|
||||
ControlFile.checkPointCopy.undo.xrecoff,
|
||||
ControlFile.checkPointCopy.ThisStartUpID,
|
||||
ControlFile.checkPointCopy.nextXid,
|
||||
ControlFile.checkPointCopy.nextOid,
|
||||
ckpttime_str,
|
||||
ControlFile.blcksz,
|
||||
ControlFile.relseg_size,
|
||||
ControlFile.nameDataLen,
|
||||
ControlFile.funcMaxArgs,
|
||||
(ControlFile.enableIntTimes ?
|
||||
"64-bit integers" : "Floating point"),
|
||||
ControlFile.localeBuflen,
|
||||
ControlFile.lc_collate,
|
||||
ControlFile.lc_ctype);
|
||||
|
||||
return (0);
|
||||
return 0;
|
||||
}
|
||||
|
197
src/bin/pg_controldata/po/de.po
Normal file
197
src/bin/pg_controldata/po/de.po
Normal file
@ -0,0 +1,197 @@
|
||||
# German message translation file for pg_controldata
|
||||
# Peter Eisentraut <peter_e@gmx.net>, 2002.
|
||||
#
|
||||
# $Header: /cvsroot/pgsql/src/bin/pg_controldata/po/de.po,v 1.1 2002/08/21 22:24:34 petere Exp $
|
||||
#
|
||||
# Use these quotes: »%s«
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PostgreSQL 7.3\n"
|
||||
"POT-Creation-Date: 2002-08-22 00:15+0200\n"
|
||||
"PO-Revision-Date: 2002-08-22 00:14+0200\n"
|
||||
"Last-Translator: Peter Eisentraut <peter_e@gmx.net>\n"
|
||||
"Language-Team: German <peter_e@gmx.net>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=ISO-8859-1\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: pg_controldata.c:29
|
||||
#, c-format
|
||||
msgid "%s displays PostgreSQL database cluster control information.\n"
|
||||
msgstr "%s zeigt Kontrollinformationen über PostgreSQL-Datenbankcluster an.\n"
|
||||
|
||||
#: pg_controldata.c:30
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Usage:\n"
|
||||
" %s [DATADIR]\n"
|
||||
"\n"
|
||||
msgstr ""
|
||||
"Benutzung:\n"
|
||||
" %s [DATENVERZEICHNIS]\n"
|
||||
"\n"
|
||||
|
||||
#: pg_controldata.c:31
|
||||
msgid ""
|
||||
"If not data directory is specified, the environment variable PGDATA\n"
|
||||
"is used.\n"
|
||||
"\n"
|
||||
msgstr ""
|
||||
"Wenn kein Datenverzeichnis angegeben ist, wird die Umgebungsvariable\n"
|
||||
"PGDATA verwendent.\n"
|
||||
"\n"
|
||||
|
||||
#: pg_controldata.c:32
|
||||
msgid "Report bugs to <pgsql-bugs@postgresql.org>.\n"
|
||||
msgstr "Berichten Sie Fehler an <pgsql-bugs@postgresql.org>.\n"
|
||||
|
||||
#: pg_controldata.c:52
|
||||
msgid "unrecognized status code"
|
||||
msgstr "unerkannter Statuscode"
|
||||
|
||||
#: pg_controldata.c:100
|
||||
#, c-format
|
||||
msgid "%s: no data directory specified\n"
|
||||
msgstr "%s: kein Datenverzeichnis angegeben\n"
|
||||
|
||||
#: pg_controldata.c:108
|
||||
#, c-format
|
||||
msgid "%s: could not open file \"%s\" for reading (%s)\n"
|
||||
msgstr "%s: konnte Datei »%s« nicht zum Lesen öffnen (%s)\n"
|
||||
|
||||
#: pg_controldata.c:115
|
||||
#, c-format
|
||||
msgid "%s: could not read file \"%s\" (%s)\n"
|
||||
msgstr "%s: konnte Datei »%s« nicht zum Lesen öffnen (%s)\n"
|
||||
|
||||
#: pg_controldata.c:129
|
||||
msgid ""
|
||||
"WARNING: Calculated CRC checksum does not match value stored in file.\n"
|
||||
"Either the file is corrupt, or it has a different layout than this program\n"
|
||||
"is expecting. The results below are untrustworthy.\n"
|
||||
"\n"
|
||||
msgstr ""
|
||||
"WARNUNG: Berechnete CRC-Checksumme stimmt nicht mit dem Wert in der Datei\n"
|
||||
"überein. Entweder ist die Datei kaputt oder sie hat ein anderes Layout\n"
|
||||
"als von diesem Program erwartet. Die Ergebnisse unten sind nicht\n"
|
||||
"verlässlich.\n"
|
||||
"\n"
|
||||
|
||||
#: pg_controldata.c:142
|
||||
#, c-format
|
||||
msgid "pg_control version number: %u\n"
|
||||
msgstr "pg_control-Versionsnummer: %u\n"
|
||||
|
||||
#: pg_controldata.c:143
|
||||
#, c-format
|
||||
msgid "Catalog version number: %u\n"
|
||||
msgstr "Katalog-Versionsnummer: %u\n"
|
||||
|
||||
#: pg_controldata.c:144
|
||||
#, c-format
|
||||
msgid "Database cluster state: %s\n"
|
||||
msgstr "Datenbank-Cluster-Status: %s\n"
|
||||
|
||||
#: pg_controldata.c:145
|
||||
#, c-format
|
||||
msgid "pg_control last modified: %s\n"
|
||||
msgstr "pg_control zuletzt geändert: %s\n"
|
||||
|
||||
#: pg_controldata.c:146
|
||||
#, c-format
|
||||
msgid "Current log file ID: %u\n"
|
||||
msgstr "Aktuelle Logdatei-ID: %u\n"
|
||||
|
||||
#: pg_controldata.c:147
|
||||
#, c-format
|
||||
msgid "Next log file segment: %u\n"
|
||||
msgstr "Nächstes Logdatei-Segment: %u\n"
|
||||
|
||||
#: pg_controldata.c:148
|
||||
#, c-format
|
||||
msgid "Latest checkpoint location: %X/%X\n"
|
||||
msgstr "Letzter Checkpoint-Ort: %X/%X\n"
|
||||
|
||||
#: pg_controldata.c:150
|
||||
#, c-format
|
||||
msgid "Prior checkpoint location: %X/%X\n"
|
||||
msgstr "Voriger Checkpoint-Ort: %X/%X\n"
|
||||
|
||||
#: pg_controldata.c:152
|
||||
#, c-format
|
||||
msgid "Latest checkpoint's REDO location: %X/%X\n"
|
||||
msgstr "REDO-Ort vom letzten Checkpoint: %X/%X\n"
|
||||
|
||||
#: pg_controldata.c:154
|
||||
#, c-format
|
||||
msgid "Latest checkpoint's UNDO location: %X/%X\n"
|
||||
msgstr "UNDO-Ort vom letzten Checkpoint: %X/%X\n"
|
||||
|
||||
#: pg_controldata.c:156
|
||||
#, c-format
|
||||
msgid "Latest checkpoint's StartUpID: %u\n"
|
||||
msgstr "StartUpID vom letzten Checkpoint: %u\n"
|
||||
|
||||
#: pg_controldata.c:157
|
||||
#, c-format
|
||||
msgid "Latest checkpoint's NextXID: %u\n"
|
||||
msgstr "NextXID vom letzten Checkpoint: %u\n"
|
||||
|
||||
#: pg_controldata.c:158
|
||||
#, c-format
|
||||
msgid "Latest checkpoint's NextOID: %u\n"
|
||||
msgstr "NextOID vom letzten Checkpoint: %u\n"
|
||||
|
||||
#: pg_controldata.c:159
|
||||
#, c-format
|
||||
msgid "Time of latest checkpoint: %s\n"
|
||||
msgstr "Zeit vom letzten Checkpoint: %s\n"
|
||||
|
||||
#: pg_controldata.c:160
|
||||
#, c-format
|
||||
msgid "Database block size: %u\n"
|
||||
msgstr "Datenbank-Blockgröße: %u\n"
|
||||
|
||||
#: pg_controldata.c:161
|
||||
#, c-format
|
||||
msgid "Blocks per segment of large relation: %u\n"
|
||||
msgstr "Blöcke pro Segment: %u\n"
|
||||
|
||||
#: pg_controldata.c:162
|
||||
#, c-format
|
||||
msgid "Maximum length of identifiers: %u\n"
|
||||
msgstr "Höchstlänge von Namen: %u\n"
|
||||
|
||||
#: pg_controldata.c:163
|
||||
#, c-format
|
||||
msgid "Maximum number of function arguments: %u\n"
|
||||
msgstr "Maximale Funktionsargumente: %u\n"
|
||||
|
||||
#: pg_controldata.c:164
|
||||
#, c-format
|
||||
msgid "Date/time type storage: %s\n"
|
||||
msgstr "Speicherung von Datum/Zeit-Typen: %s\n"
|
||||
|
||||
#: pg_controldata.c:165
|
||||
msgid "64-bit integers"
|
||||
msgstr "64-Bit Ganzzahlen"
|
||||
|
||||
#: pg_controldata.c:165
|
||||
msgid "Floating point"
|
||||
msgstr "Fließkommazahlen"
|
||||
|
||||
#: pg_controldata.c:166
|
||||
#, c-format
|
||||
msgid "Maximum length of locale name: %u\n"
|
||||
msgstr "Maximallänge eines Locale-Namens: %u\n"
|
||||
|
||||
#: pg_controldata.c:167
|
||||
#, c-format
|
||||
msgid "LC_COLLATE: %s\n"
|
||||
msgstr "LC_COLLATE: %s\n"
|
||||
|
||||
#: pg_controldata.c:168
|
||||
#, c-format
|
||||
msgid "LC_CTYPE: %s\n"
|
||||
msgstr "LC_CTYPE: %s\n"
|
Loading…
x
Reference in New Issue
Block a user