.\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35)
.\"
.\" 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" ''
.    ds C`
.    ds C'
'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 >0, 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.
.\"
.\" Avoid warning from groff about undefined register 'F'.
.de IX
..
.if !\nF .nr F 0
.if \nF>0 \{\
.    de IX
.    tm Index:\\$1\t\\n%\t"\\$2"
..
.    if !\nF==2 \{\
.        nr % 0
.        nr F 2
.    \}
.\}
.\" ========================================================================
.\"
.IX Title "PO4A-RUNTIME 7"
.TH PO4A-RUNTIME 7 "2018-06-07" "Narzędzia po4a" "Narzędzia po4a"
.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAZWA"
.IX Header "NAZWA"
po4a\-runtime \- po4a i tłumaczenie komunikatów programów bez użycia Autotools
.SH "Wstęp"
.IX Header "Wstęp"
Z pomocą \fIpo4a\-build\fR, \fIpo4a\fR wspiera także dodawanie tłumaczeń
komunikatów skryptów przy użyciu narzędzi gettext, ale bez wymagania, żeby
używane były Autotools i typowy proces \fI./configure\fR.
.PP
Używając przykładowych fragmentów pliku \fIMakefile\fR, pakiety mogą
bezproblemowowykorzystywać \fIintltool\fR.
.SH "Układ"
.IX Header "Układ"
Tłumaczenia dokumentacji \s-1NIE\s0 powinny używać tego samego katalogu \fIpo/\fR co
katalog tłumaczeń komunikatów programów. Podczas gdy tłumaczenia komunikatów
programów mogą używać innych katalogów niż \fIpo/\fR, zazwyczaj prościej jest
dostosować się do konwencji.
.SH "Wiele języków programowania"
.IX Header "Wiele języków programowania"
Słowo o pakietach używających skryptów napisanych w kilku językach
programowania. Typowym połączeniem jest używanie Perla i skryptów
powłoki. Notabene: gettext \s-1POGUBI\s0 SIĘ i opuści komunikaty z jednego lub
drugiego języka, chyba że używane są rozszerzenia plików, co jest
rozwiązaniem sprawiającym najmniej problemów.
.PP
Podczas używania wielu języków, prosimy poeksperymentować z różnymi
ustawieniami w \fIpo/Makevars\fR, tak żeby uzyskać wszystkie potrzebne
komunikaty w pliku \s-1POT.\s0
.PP
W szczególności problematyczne może być podanie dwóch języków w
\&\fIpo/Makevars\fR. Zamiast:
.PP
.Vb 2
\& # Nie rób tego:
\& XGETTEXT_OPTIONS = \-L Perl \-L Shell \-\-from\-code=iso\-8859\-1
.Ve
.PP
Prosimy rozważyć zmianę nazwy (lub utworzenie dowiązań symbolicznych dla)
wszystkich plików jednego spośród używanych języków i nie podawać opcji
\&\-L. Pliki z odpowiednimi rozszerzeniami muszą istnieć tylko podczas
przetwarzania pliku \fIpo/POTFILES.in\fR.
.PP
Opcja \-\-keywords może być również przydatna \- patrz dokumentacja programu
\&\fBxgettext\fR(1).
.SH "Wypełnianie katalogu po/"
.IX Header "Wypełnianie katalogu po/"
Tak więc należy utworzyć główny katalog \fIpo/\fR, a następnie wypełnić go,
używając przykładowych plików z \fI/usr/share/doc/po4a/examples/\fR.
.IP "\s-1LINGUAS\s0" 4
.IX Item "LINGUAS"
Musi występować, nawet jeśli będzie pusty. Zawiera listę tłumaczeń \- każda
linia niezaczynająca się od \*(L"#\*(R" musi odpowiadać istniejącemu plikowi \s-1PO,\s0 na
przykład jeżeli plik \fI\s-1LINGUAS\s0\fR zawiera pojedynczą linię \*(L"fr\*(R", to obok pliku
\&\fI\s-1LINGUAS\s0\fR, musi istnieć plik \fIfr.po\fR.
.Sp
.Vb 5
\& $ cat po/LINGUAS
\& cs
\& de
\& fr
\& $
.Ve
.Sp
Zgodnie z konwencją, plik \fI\s-1LINGUAS\s0\fR jest posortowany alfabetycznie,
jednakże jest to przeprowadzane ręcznie.
.IP "\s-1POTFILES\s0.in" 4
.IX Item "POTFILES.in"
Lista plików zawierających komunikaty do przetłumaczenia pochodzące np. ze
skryptów. Jeżeli jest używany katalog \fIpo/\fR najwyższego poziomu, ścieżki
powinny być względne w stosunku do głównego katalogu, a nie w stosunku do
katalogu \fIpo/\fR.
.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
Proszę zauważyć, że jest wspierane, by skrypty jednocześnie zawierały
tłumaczenia komunikatów wyjściowych i dokumentacji, np. używając funkcji
programu gettext do tłumaczenia komunikatów skryptu i osadzonej w nim
dokumentacji w formacie \s-1POD.\s0 Tak więc nie będzie problemem wymienienie tego
samego pliku zarówno w \fIpo/POTFILES.in\fR, jak i \fIdoc/po4a\-build.conf\fR.
.IP "Makevars\-perl.example" 4
.IX Item "Makevars-perl.example"
Jeśli skrypty są skryptami Perla, proszę skopiować ten przykład do pliku
\&\fIpo/Makevars\fR, a następnie dopasować do własnych potrzeb.
.IP "Makevars\-shell.example" 4
.IX Item "Makevars-shell.example"
Jeśli skrypty są skryptami powłoki, proszę skopiować ten przykład do pliku
\&\fIpo/Makevars\fR, a następnie dopasować do własnych potrzeb.
.IP "po4a\-build.make" 4
.IX Item "po4a-build.make"
Proszę skopiować ten przykładowy plik do \fIpo/Makefile\fR. Nie powinien
wymagać późniejszej edycji, jednakże może istnieć potrzeba aktualizowania go
z \fI/usr/share/doc/po4a/examples/po4a\-build.make\fR, jeśli nowe wydanie
pakietu po4a zmieni wewnętrzną obsługę intltool (Plik ten został
wygenerowany z innego projektu używającego Autotools i intltool).
.SH "Budowanie"
.IX Header "Budowanie"
Poniższe kawałki kodu należy dodać do głównego pliku Makefile albo innego
pliku używanego do przygotowywania dystrybuowalnej wersji pakietu
źródłowego.
.PP
.Vb 2
\& clean:
\&        $(MAKE) \-C po/ clean
\&
\& install:
\&        $(MAKE) \-C po/ install DESTDIR=$(DESTDIR)
\&
\& dist:
\&        $(MAKE) \-C po/ pot
.Ve
.PP
(W projekcie korzystającym z Autotools, nastąpiłoby to automatycznie po
dodaniu \fIpo\fR do wartości zmiennej \f(CW\*(C`SUBDIRS\*(C'\fR value w \fIMakefile.am\fR.)
.SH "Utrzymywanie"
.IX Header "Utrzymywanie"
Tłumaczenie komunikatów skryptów nie jest tak proste jak w \fIpo4a\-build\fR w
tym względzie, że dodanie nowego tłumaczenia wymaga edycji pliku
\&\fIpo/LINGUAS\fR, jednakże aktualizowanie tłumaczenia sprowadza się do
zastąpienia odpowiedniego pliku \s-1PO\s0 jego nową wersją.
.PP
W zależności od sposobu przygotowywania archiwum źródłowego, może być
potrzebne wpisanie nowych plików \s-1PO\s0 w pliku \fI\s-1MANIFEST\s0\fR lub dodanie ich do
skryptów generujących archiwum (dotyczy to również \fIpo4a\-build\fR).
.PP
Pliki \fI*.mo\fR lub \fI*.gmo\fR w katalogu \fIpo/\fR można usunąć.
.SH "Copyright"
.IX Header "Copyright"
Chociaż przykładowe pliki są częścią projektu po4a, można ich dowolnie
używać, zmieniać je i dystrybuować we własnych projektach bez dodawania
wzmianki o po4a lub wymieniania zespołu po4a w informacji o prawach
autorskich, tak samo jak nie ma potrzeby wymieniania tam innych narzędzi
używanych do budowania, jak na przykład Automake. Jeśli jednak chcesz
wymienić po4a, nikt tego nie może zabronić.
.SH "AUTORZY"
.IX Header "AUTORZY"
.Vb 1
\& Neil Williams <linux@codehelp.co.uk>
.Ve
.SH "TŁUMACZENIE"
.IX Header "TŁUMACZENIE"
.Vb 1
\& Robert Luberda <robert@debian.org>
.Ve
