.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.16) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .ie \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . nr % 0 . rr F .\} .el \{\ . de IX .. .\} .\" ======================================================================== .\" .IX Title "PO4A-RUNTIME 7" .TH PO4A-RUNTIME 7 "2013-08-21" "Po4a-Werkzeuge" "Po4a-Werkzeuge" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" po4a\-runtime \- Po4a und Laufzeit\-Gettext\-Übersetzung ohne Autotools .SH "Einleitung" .IX Header "Einleitung" Mit \fIpo4a\-build\fR enthält \fIpo4a\fR 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 \&\fI./configure\fR\-Prozess verwendet. .PP Durch Einsatz der beispielhaften \fIMakefile\fR\-Schnipsel können Pakete sich \&\fIintltool\fR mit minimalem Aufwand nutzbar machen. .SH "Layout" .IX Header "Layout" Übersetzungen von Dokumentationen sollten \s-1NICHT\s0 das gleiche \&\fIpo/\fR\-Verzeichnis wie die Übersetzungen der Programmmeldungen benutzen. Es ist zwar möglich, dass die Übersetzungen der Programmmeldungen ein von \&\fIpo/\fR verschiedenes Verzeichnis benutzen, allerdings ist es meistens am besten, der Konvention zu folgen. .SH "Mehrere Sprachen" .IX Header "Mehrere Sprachen" Noch ein Wort zu Paketen, die Skripte in verschiedenen Programmiersprachen benutzen. Eine häufige Mischung ist Perl und Shell. Übrings \s-1WIRD\s0 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. .PP Wenn mehrere Sprachen verwandt werden, experimentieren Sie mit verschiedenen Einstellungen in \fIpo/Makevars\fR, bis Sie alle Zeichenketten erhalten, die Sie in der POT-Datei haben wollen. .PP Insbesondere kann die Angabe von zwei Sprachen in \fIpo/Makevars\fR problematisch sein. Stattdessen: .PP .Vb 2 \& # Tun Sie dies nicht: \& XGETTEXT_OPTIONS = \-L Perl \-L Shell \-\-from\-code=iso\-8859\-1 .Ve .PP 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 \fIpo/POTFILES.in\fR existieren. .PP Außerdem kann die Option \-\-keywords nützlich sein – siehe die Xgettext-Dokumentation. .SH "po/ befüllen" .IX Header "po/ befüllen" Erstellen Sie die oberste Ebene Ihres \fIpo/\fR\-Verzeichnisses und benutzen Sie die Beispieldateien in \fI/usr/share/doc/po4a/examples/\fR, um es zu befüllen. .IP "\s-1LINGUAS\s0" 4 .IX Item "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 \fI\s-1LINGUAS\s0\fR eine einzelne Zeile, »fr«, enthält, muss eine Datei \fIfr.po\fR zusammen mit der \fI\s-1LINGUAS\s0\fR\-Datei existieren. .Sp .Vb 5 \& $ cat po/LINGUAS \& cs \& de \& fr \& $ .Ve .Sp Gemäß der Konvention ist die \fI\s-1LINGUAS\s0\fR\-Datei alphabetisch sortiert, dies ist aber ein manueller Prozess. .IP "\s-1POTFILES\s0.in" 4 .IX Item "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 \&\fIpo/\fR\-Verzeichnisses benutzt haben, sollten die Pfade relativ zur obersten Verzeichnisebene sein, nicht das \fIpo/\fR\-Verzeichnis selbst. .Sp .Vb 11 \& $ ls \-l \& myscript.pl \& another.pl \& foo/support.pl \& po/ \& po/POTFILES.in \& $ cat po/POTFILES.in \& myscript.pl \& another.pl \& foo/support.pl \& $ .Ve .Sp 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 \fIpo/POTFILES.in\fR und \fIdoc/po4a\-build.conf\fR aufgeführt ist. .IP "Makevars\-perl.example" 4 .IX Item "Makevars-perl.example" Falls Ihre Skripte in Perl verfasst sind, kopieren Sie diese Beispieldatei nach \fIpo/Makevars\fR und bearbeiten Sie sie geeignet. .IP "Makevars\-shell.example" 4 .IX Item "Makevars-shell.example" Falls Ihr Skripte Shell-Skripte sind, kopieren Sie diese Beispieldatei nach \&\fIpo/Makevars\fR und bearbeiten Sie sie geeignet. .IP "po4a\-build.make" 4 .IX Item "po4a-build.make" Kopieren Sie dieses Beispiel als \fIpo/Makefile\fR – es sollte keine Bearbeitung erfordern. Falls Sie es aber gegenüber \&\fI/usr/share/doc/po4a/examples/po4a\-build.make\fR 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.) .SH "Bauen" .IX Header "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. .PP .Vb 2 \& clean: \& $(MAKE) \-C po/ clean \& \& install: \& $(MAKE) \-C po/ install DESTDIR=$(DESTDIR) \& \& dist: \& $(MAKE) \-C po/ pot .Ve .PP (In einem Autotools-Projekt würde dies automatisch geschehen, indem einfach dem \f(CW\*(C`SUBDIRS\*(C'\fR\-Wert in \fIMakefile.am\fR \fIpo\fR hinzugefügt wird.) .SH "Wartung" .IX Header "Wartung" Übersetzung zur Laufzeit ist nicht ganz so einfach wie \fIpo4a\-build\fR, worin das Hinzufügen einer neuen Übersetzung die Bearbeitung von \fIpo/LINGUAS\fR 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. .PP Abhängig davon, wie Sie den Quell-Tarball vorbereiten, könnte es außerdem erforderlich sein, die neuen PO-Dateien in der Datei \fI\s-1MANIFEST\s0\fR aufzuführen oder Skripten hinzuzufügen, die den Tarball vorbereiten. (Das gilt ebenso für \fIpo4a\-build\fR.) .PP Jegliche \fI*.mo\fR\- oder \fI*.gmo\fR\-Dateien in \fIpo/\fR können gelöscht/aufgeräumt werden. .SH "Copyright" .IX Header "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. .SH "AUTOREN" .IX Header "AUTOREN" .Vb 1 \& Neil Williams .Ve