Provided by: po4a_0.52-1_all bug

NAME

       po4a-runtime - Po4a und Laufzeit-Gettext-Übersetzung ohne Autotools

Einleitung

       Mit po4a-build enthält po4a auch Unterstützung für das Hinzufügen von Übersetzungen
       mittels Gettext in die Ausgabemeldungen von Laufzeitskripten, aber ohne vorauszusetzen,
       dass das Paket die Autotools und den typischen ./configure-Prozess verwendet.

       Durch Einsatz der beispielhaften Makefile-Schnipsel können Pakete sich intltool mit
       minimalem Aufwand nutzbar machen.

Layout

       Übersetzungen von Dokumentationen sollten NICHT das gleiche po/-Verzeichnis wie die
       Übersetzungen der Programmmeldungen benutzen. Es ist zwar möglich, dass die Übersetzungen
       der Programmmeldungen ein von po/ verschiedenes Verzeichnis benutzen, allerdings ist es
       meistens am besten, der Konvention zu folgen.

Mehrere Sprachen

       Noch ein Wort zu Paketen, die Skripte in verschiedenen Programmiersprachen benutzen. Eine
       häufige Mischung ist Perl und Shell. Übrings WIRD Gettext durcheinander kommen und
       Zeichenketten aus der einen oder anderen Sprache weglassen, solange nicht Dateiendungen
       für diejenige Sprache benutzt werden, die am wenigsten problematisch ist.

       Wenn mehrere Sprachen verwandt werden, experimentieren Sie mit verschiedenen Einstellungen
       in po/Makevars, bis Sie alle Zeichenketten erhalten, die Sie in der POT-Datei haben
       wollen.

       Insbesondere kann die Angabe von zwei Sprachen in po/Makevars problematisch sein.
       Stattdessen:

        # Tun Sie dies nicht:
        XGETTEXT_OPTIONS = -L Perl -L Shell --from-code=iso-8859-1

       Ziehen Sie in Betracht, alle Dateien für eine der beteiligten Sprachen umzubenennen (oder
       symbolische Verweise dafür bereitzustellen) und die expliziten -L-Optionen wegzulassen.
       Die Dateierweiterung muss nur während der Verarbeitung von po/POTFILES.in existieren.

       Außerdem kann die Option --keywords nützlich sein – siehe die xgettext(1)-Dokumentation.

po/ befüllen

       Erstellen Sie die oberste Ebene Ihres po/-Verzeichnisses und benutzen Sie die
       Beispieldateien in /usr/share/doc/po4a/examples/, um es zu befüllen.

       LINGUAS
           muss existieren, sogar, wenn sie leer ist; besteht aus einer Liste von Übersetzungen –
           jede Zeile, die nicht mit einem »#« beginnt, muss auf eine existierende PO-Datei
           passen. D.h., falls LINGUAS eine einzelne Zeile, »fr«, enthält, muss eine Datei fr.po
           zusammen mit der LINGUAS-Datei existieren.

            $ cat po/LINGUAS
            cs
            de
            fr
            $

           Gemäß der Konvention ist die LINGUAS-Datei alphabetisch sortiert, dies ist aber ein
           manueller Prozess.

       POTFILES.in
           die Liste der Dateien, die die Nachrichten enthalten, die zur Laufzeit übersetzt
           werden müssen – d.h. Ihre Skripte. Falls Sie die oberste Ebene des po/-Verzeichnisses
           benutzt haben, sollten die Pfade relativ zur obersten Verzeichnisebene sein, nicht das
           po/-Verzeichnis selbst.

            $ ls -l
            myscript.pl
            another.pl
            foo/support.pl
            po/
            po/POTFILES.in
            $ cat po/POTFILES.in
            myscript.pl
            another.pl
            foo/support.pl
            $

           Beachten Sie, dass es explizit unterstützt wird, dass Skripte selbst Zeichenketten
           sowohl für die Laufzeit- als auch für die Dokumentationsübersetzung enthalten können,
           z.B. werden Gettext-Funktionen für die Laufzeit und eingebetteten POD-Inhalt für
           Dokumentation benutzt. Daher ist es kein Problem, wenn dieselbe Datei in
           po/POTFILES.in und doc/po4a-build.conf aufgeführt ist.

       Makevars-perl.example
           Falls Ihre Skripte in Perl verfasst sind, kopieren Sie diese Beispieldatei nach
           po/Makevars und bearbeiten Sie sie geeignet.

       Makevars-shell.example
           Falls Ihr Skripte Shell-Skripte sind, kopieren Sie diese Beispieldatei nach
           po/Makevars und bearbeiten Sie sie geeignet.

       po4a-build.make
           Kopieren Sie dieses Beispiel als po/Makefile – es sollte keine Bearbeitung erfordern.
           Falls Sie es aber gegenüber /usr/share/doc/po4a/examples/po4a-build.make aktuell
           halten möchten, da es nötig sein könnte, es innerhalb von Po4a-Veröffentlichungen zu
           aktualisieren, weil sich die darunterliegende Intltools-Unterstützung ändert. (Die
           Datei selbst wurde von einem anderen Projekt erzeugt, die Autotools und Intltool
           benutzt.)

Bauen

       Diese Schnipsel müssen Ihrem Makefile auf der obersten Ebene hinzugefügt werden oder was
       auch immer Sie für eine Methode benutzen, um Ihre Quellen zur Verteilung vorzubereiten.

        clean:
               $(MAKE) -C po/ clean

        install:
               $(MAKE) -C po/ install DESTDIR=$(DESTDIR)

        dist:
               $(MAKE) -C po/ pot

       (In einem Autotools-Projekt würde dies automatisch geschehen, indem einfach dem
       "SUBDIRS"-Wert in Makefile.am po hinzugefügt wird.)

Wartung

       Übersetzung zur Laufzeit ist nicht ganz so einfach wie po4a-build, worin das Hinzufügen
       einer neuen Übersetzung die Bearbeitung von po/LINGUAS erfordert, aber unabhängig davon
       ist das Aktualisieren von Übersetzungen lediglich ein Fall, bei dem die maßgebliche PO-
       Datei durch die neue Version ersetzt wird.

       Abhängig davon, wie Sie den Quell-Tarball vorbereiten, könnte es außerdem erforderlich
       sein, die neuen PO-Dateien in der Datei MANIFEST aufzuführen oder Skripten hinzuzufügen,
       die den Tarball vorbereiten. (Das gilt ebenso für po4a-build.)

       Jegliche *.mo- oder *.gmo-Dateien in po/ können gelöscht/aufgeräumt werden.

Copyright

       Solange die Beispieldateien Teil des Po4a-Projekts sind, können Sie sie in Ihrem eigenen
       Projekt frei verwenden, ändern oder verteilen, ohne dass Sie zurück auf Po4a verweisen
       müssen oder das Po4a-Team in Ihrem eigenen Copyright-Hinweis aufführen zu müssen, ebenso
       wie bei den anderen Werkzeugen zum automatischen Bauen, wie Automake selbst. Falls Sie
       Po4a erwähnen wollen, ist das auch gut.

AUTOREN

        Neil Williams <linux@codehelp.co.uk>