gencat(1) gencat(1)
NAME
gencat - Binär codierten Meldungskatalog erzeugen
SYNTAX
gencat [option ...] catfile msgfile ...
BESCHREIBUNG
Das Kommando gencat schreibt den Inhalt einer Meldungstext-Datei in
einen binär codierten Meldungskatalog.
Wenn der Meldungskatalog noch nicht existiert, wird er neu erstellt.
Wenn der Meldungskatalog bereits existiert, werden die darin enthalte-
nen Meldungen in den neuen Meldungskatalog mit eingebunden. Wenn die
Mengen- und Meldungsnummern von aktuellen und neudefinierten Meldungs-
texten übereinstimmen, dann ersetzt gencat die aktuell im Meldungska-
talog stehenden Meldungstexte durch die in der Meldungstext-Datei
definierten neuen Meldungstexte.
Mit gencat erzeugte Meldungskataloge sind binär codiert, d. h., daß
zwischen verschiedenen Maschinentypen keine Kompatibilität garantiert
werden kann. Genau wie C-Programme für jeden Maschinentyp neu über-
setzt werden müssen, müssen die Meldungskataloge mit gencat neu
erstellt werden.
Eine Meldungstext-Datei kann einfache Meldungsnummern oder zweistufige
Meldungsnummern enthalten. Zweistufige bestehen aus der Meldungsnummer
und einer Mengennummer. Bei einfachen Meldungsnummern wird standardmä-
ßig NLSETD für die Mengennummern verwendet.
OPTIONEN
Die Optionen -m und -X schließen sich gegenseitig aus; die zuletzt
gesetzte Option hat Vorrang.
-l Falls catfile bereits existiert, werden Informationen über die
dort vorhandenen Meldungen auf die Standardausgabe ausgegeben.
Die Ausgabe hat folgendes Format:
Mit Option -X:
SET mengennr, MESSAGE meldungsnr, TEXT meldungstext
*
Ohne Option -X:
SET mengennr, MESSAGE meldungsnr, OFFSET offset, LENGTH meldungs-
länge meldungstext
*
offset gibt den Abstand des Meldungstextbeginns vom Anfang an,
d. h.
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
gencat(1) gencat(1)
erste Meldung: offset(1) = 0
i-te Meldung: offset(i) = offset(i-1) + meldungslänge(i)
-m Mit der Option -m kann X/Open-konform gearbeitet werden.
Aus Kompatibilitätsgründen zu früheren Versionen von gencat, die
in einer Reihe von speziellen internationalisierten Produkten
veröffentlicht wurden, wird die Option -m zur Verfügung gestellt.
Sie bewirkt, daß gencat eine einzige Datei catfile erzeugt, die
mit den Formatkatalogen, die von den früheren Versionen erstellt
wurden, kompatibel ist. Die Suchroutinen finden heraus, um wel-
chen Katalogtyp es sich handelt, und agieren dementsprechend.
Das Verhalten der Option -m ist die Voreinstellung, sie braucht
nicht explizit eingeschaltet zu werden.
-X gencat baut auf dem mkmsgs-Dienstprogramm auf. Die gencat-Daten-
bank besteht aus zwei Dateien: catfile.m ist ein mkmsgs-Format-
katalog, catfile enthält die Informationen, die zum Übersetzen
einer zweistufigen Nummer (set and message number) in eine einfa-
che Meldungsnummer benötigt werden. Einfache Meldungsnummern wer-
den bei gettxt-Aufrufen verwendet.
gettxt nimmt an, daß die Kataloge in einem Unterverzeichnis von
/usr/lib/locale abgelegt sind. Diese Einschränkung umgehen Sie,
indem Sie einen symbolischen Verweis auf den Katalog
/usr/lib/locale/Xopen/LCMESSAGES erzeugen, nachdem der Katalog
eingerichtet wurde. Über diesen Verweis kann gettxt auf den Kata-
log zugreifen. Der Verweis wird gelöscht, wenn der Katalog
geschlossen wird.
-- Ende der Optionenliste. Die Angabe ist nötig, wenn catfile mit -
beginnt.
Keine Option angegeben:
gencat verhält sich, wie bei der Option -m beschrieben.
catfile
Name des binär codierten Meldungskatalogs, den gencat aus der
Meldungstext-Datei msgfile erzeugen soll. Wenn Sie für catfile
einen Bindestrich - angeben, schreibt gencat auf die Standardaus-
gabe.
msgfile
Name der Meldungstext-Datei, die durch extract(1) erzeugt wurde.
Aus ihr erzeugt gencat einen binär codierten Meldungskatalog.
Wenn Sie für msgfile einen Bindestrich - angeben, liest gencat
von der Standardeingabe. Sie können auch mehrere Meldungsquellda-
teien angeben.
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98
gencat(1) gencat(1)
FORMAT EINES MELDUNGSKATALOGS
Ein von gencat mit der Option -m erzeugter Meldungskatalog enthält die
folgenden Strukturen in der angegebenen Reihenfolge:
⊕ den Katalog-Kopf CATHDR, bestehend aus:
- der Dateiformatkennung (magic number)
- der Anzahl der Mengen (set) in der Meldungsdatei
- dem Platz (in Byte), den die Datei zum Laden benötigt, die Länge
des Dateikopfs nicht mitgerechnet
- der Position, an der die Meldungsköpfe beginnen, die Länge des
Dateikopfs nicht mitgerechnet
- der Position, an der die Meldungstexte beginnen, die Länge des
Dateikopfs nicht mitgerechnet
⊕ einen Mengenkopf CATSETHDR für jede vorhandene Menge (set),
bestehend aus:
- der Mengennummer
- der Anzahl der Meldungen in der Menge
- dem Start-Offset in der Tabelle
⊕ einen Meldungskopf CATMSGHDR für jede vorhandene Meldung, beste-
hend aus:
- der Meldungsnummer
- der Länge der Meldung in Byte
- dem Meldungs-Offset in der Tabelle
⊕ die einzelnen Meldungstexte, die durch \0 voneinander getrennt
sind.
INTERNATIONALE UMGEBUNG
Die Umgebungsvariable LCMESSAGES bestimmt die Sprache der Meldungs-
texte. Wenn LCMESSAGES nicht oder als leere Zeichenkette definiert
ist, wird der Wert von LANG als Standardwert herangezogen. Ist auch
LANG nicht oder als leere Zeichenkette definiert, verhält sich das
System so, als wäre es nicht internationalisiert.
Die Umgebungsvariable LCALL bestimmt die gesamte internationale Umge-
bung. LCALL hat Vorrang vor allen anderen Umgebungsvariablen im
Bereich der Internationalisierung.
Seite 3 Reliant UNIX 5.44 Gedruckt 11/98
gencat(1) gencat(1)
BEISPIELE
Erzeugen des binär codierten Meldungskatalogs catfile aus der Mel-
dungstext-Datei msgfile. Die Meldungstext-Datei wurde vorher mit
extract(1) erzeugt.
$ gencat catfile msgfile
SIEHE AUCH
dumpmsg(1), extract(1), iconv(1), mkmsgs(1), catclose(3C),
catgets(3C), catopen(3C), gettxt(3C), nltypes(5).
Leitfaden für Programmierer, Internationalisierung - Lokalisierung.
Seite 4 Reliant UNIX 5.44 Gedruckt 11/98