Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ mkmsgs(1) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

exstr(1)

gettxt(1)

srchtxt(1)

gettxt(3C)

setlocale(3C)

mkmsgs(1)                                                         mkmsgs(1)

NAME
     mkmsgs - Meldungsdateien für gettxt erstellen (make messages)

SYNTAX
     mkmsgs [-i lokale] [-o] eingabedatei meldungsdatei

BESCHREIBUNG
     mkmsgs erstellt eine Datei mit Zeichenketten, auf die die Textsuchkom-
     mandos gettxt(1), srchtxt(1), exstr(1) und die C-Funktion gettxt(3C)
     zugreifen können. Die Eingabe für mkmsgs ist eine editierbare Datei
     mit Zeichenketten, die in einer bestimmten Landessprache geschrieben
     sind [siehe setlocale(3C)]. Die Ausgabedatei enthält dieselben Zei-
     chenketten, aber in einem Format, das den Zugriff durch gettxt und
     gettxt(3C) ermöglicht. mkmsgs kopiert die Zeichenketten aus der Einga-
     bedatei in der dort vorliegenden Reihenfolge in die Ausgabedatei.

OPTIONEN
     Keine Option angegeben:
          meldungsdatei wird im aktuellen Verzeichnis angelegt.

     -i lokale
          Die Option -i ist nur für den Systemverwalter bestimmt.

          lokale steht für die Landessprache, in der die Zeichenketten in
          eingabedatei geschrieben sind. Der Wert, den lokale erhält, soll
          später der Umgebungsvariablen LCMESSAGES bzw. LANG zugewiesen
          werden, damit mit gettxt(3C) auf diese Datei zugegriffen werden
          kann (siehe BEISPIELE). Die für gettxt(1) und gettxt(3C) lesbare
          meldungsdatei wird dann im Verzeichnis
          /usr/lib/locale/lokale/LCMessages angelegt, wobei Sie mit Ihrer
          Angabe für lokale den einfachen Namen des Verzeichnisses
          /usr/lib/locale/lokale bestimmen. Nur der Systemverwalter und
          Mitglieder der Benutzergruppe bin können in diesem Verzeichnis
          Dateien anlegen oder überschreiben. Wenn es unter

          /usr/bin/locale das von Ihnen angegebene Verzeichnis lokale noch
          nicht gibt, wird es angelegt.

          Ein nichtprivilegierter Benutzer hat weder das Recht, unter
          /usr/lib/locale ein Verzeichnis zu erzeugen, noch unter
          /usr/lib/locale/lokale/LCMESSAGES eine Datei anzulegen.

     -o   Wenn es meldungsdatei schon gibt, wird sie überschrieben.

     eingabedatei
          Datei mit den ursprünglichen Zeichenketten, die mkmsgs in ein
          anderes Format bringt. Jede Zeichenkette muß in einer neuen Zeile
          stehen und nicht druckbare Zeichen müssen durch Escape-Folgen
          dargestellt werden, z. B. \t für das Tabulatorzeichen, \n für das
          Neue-Zeile-Zeichen usw. [wie bei der C-Funktion printf(3S)].
          Außerdem sind auch Oktaldarstellungen in der Form \nnn erlaubt.
          Eine leere Zeichenkette stellen Sie durch eine leere Zeile dar.



Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

mkmsgs(1)                                                         mkmsgs(1)

          Eine bereits bestehende eingabedatei verändern Sie mit einem
          beliebigen Editor: vorhandene Zeichenketten können Sie über-
          schreiben, neue Zeichenketten können Sie nur am Ende der Datei
          anfügen. Aus einer geänderten eingabedatei erzeugen Sie mit
          mkmsgs eine neue meldungsdatei und legen diese an der richtigen
          Stelle im Dateibaum an, nämlich unter
          /usr/lib/locale/lokale/LCMESSAGES. So kann die Textsuchfunktion
          gettxt(3C), bzw. das Kommando gettxt, darauf zugreifen, wenn
          LCMESSAGES (oder LANG, wenn LCMESSAGES nicht gesetzt ist) auf
          den Wert lokale gesetzt ist. Andernfalls findet die Textsuchfunk-
          tion gettxt(3C) nicht die richtige Zeichenkette und es besteht
          keine Kompatibilität mehr zwischen den verschiedenen Software-
          Versionen.

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.

BEISPIELE
     Beispiel 1

     Die Eingabedatei C.str enthält folgende Zeichenketten:

     Datei %s:\t kann nicht geoeffnet werden\n
     %s: Unbekanntes Verzeichnis\n
       .
       .
       .
     Schreibfehler\n
       .
       .

     Der folgende Aufruf von mkmsgs kopiert die Zeichenketten aus C.str im
     richtigen Format in die Meldungsdatei UX und legt diese im aktuellen
     Verzeichnis an:

     $ mkmsgs C.str UX

     Der folgende Aufruf von mkmsgs kopiert die Zeichenketten aus der Ein-
     gabedatei FR.str im richtigen Format in die Meldungsdatei UX und legt
     diese im Verzeichnis /usr/lib/locale/french/LCMESSAGES an:

     $ mkmsgs -i french FR.str UX




Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

mkmsgs(1)                                                         mkmsgs(1)

     Das Kommando gettxt sowie die C-Funktion gettxt(3C) können nun auf die
     Zeichenketten in /usr/lib/locale/french/LCMESSAGES/UX zugreifen,
     falls Sie die Umgebungsvariable LCMESSAGES auf den Wert
     LCMESSAGES=french gesetzt haben.

     Beispiel 2

     Es sind folgende Dateien vorhanden:

     Inhalt von Inputdatei1:

        Hallo !\n\007
        Gute\t... Nacht !\n
        Guten Morgen !\n

     Inhalt von Inputdatei2:

        Salut !\n
        Bonne nuit !\n

     Die Meldungsdateien werden folgendermaßen erzeugt und installiert:

     Die Verzeichnisse /usr/lib/locale/german/LCMESSAGES und
     /usr/lib/locale/french/LCMESSAGES existieren nicht. Der Systemverwal-
     ter legt durch folgenden Aufruf das Verzeichnis /usr/lib/locale/german
     an und erzeugt darunter eine Datei namens hallo:

     $ mkmsgs -i german Inputdatei1 hallo

     Der Aufruf

     $ mkmsgs Inputdatei2 hallo

     erzeugt eine Datei hallo im aktuellen Verzeichnis. Um diese danach mit
     gettxt in der Lokale french benützen zu können, muß der Systemverwal-
     ter folgende Aktionen durchführen:

     $ mkdir /usr/lib/locale/french
     $ mkdir /usr/lib/locale/french/LCMESSAGES
     $ cp hallo /usr/lib/locale/french/LCMESSAGES/hallo

     Auf diese Dateien wird folgendermaßen zugegriffen:

     Angenommen, LCMESSAGES ist leer und LANG hat den Wert german:

     $ gettxt hallo:1 "Hello!\n"
     Hallo !

     Gleichzeitig ertönt das Klingelzeichen.

     $ gettxt hallo:2 "Good Night!\n"
     Gute   ... Nacht !


Seite 3                      Reliant UNIX 5.44               Gedruckt 11/98

mkmsgs(1)                                                         mkmsgs(1)

     $ gettxt hallo:3 "Good Morning!\n"
     Guten Morgen !
     $ LCMESSAGES=french
     $ export LCMESSAGES
     $ gettxt hallo:1 "Hello!\n"
     Salut !
     $ gettxt hallo:2 "Good Night!\n"
     Bonne nuit !\n
     $ gettxt hallo:3 "Good Morning!\n"
     Message not found!!

     Der Aufruf hallo:3 bewirkt die Ausgabe von Message not found!!, da es
     in der Datei /usr/lib/locale/french/LCMESSAGES/hallo nur 2 Meldungen
     gibt.

     $ LCMESSAGES=invalid
     $ gettxt hallo:1 "Hello!\n"
     Hello
     $ gettxt hallo:2 "Good Night!\n"
     Good Night!

     Der Aufruf hallo:1 bzw. der Aufruf hallo:2 bewirkt die Ausgabe von
     angegebenen Textes, da es keine Datei
     /usr/lib/locale/invalid/LCMESSAGES/hallo gibt. Ohne die Angabe von
     "Hello!\n" und "Good Night!\n" würde "Message not found" ausgegeben
     werden (siehe gettxt).

DATEIEN
     /usr/lib/locale/*/LCMESSAGES/*
          Von mkmsgs erzeugte Meldungsdateien. Unter /usr/lib/locale gibt
          es mindestens ein Verzeichnis für jede unterstützte Landesspra-
          che.

SIEHE AUCH
     exstr(1), gettxt(1), srchtxt(1), gettxt(3C), setlocale(3C).

     Internationale Umgebung - NLS (Native Language System).

















Seite 4                      Reliant UNIX 5.44               Gedruckt 11/98

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026