NAZWA¶
po4a-runtime - po4a i tłumaczenie komunikatów programów bez
użycia Autotools
Wstęp¶
Z pomocą
po4a-build,
po4a 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
./configure.
Używając przykładowych fragmentów pliku
Makefile, pakiety mogą bezproblemowowykorzystywać
intltool.
Układ¶
Tłumaczenia dokumentacji NIE powinny używać tego samego
katalogu
po/ co katalog tłumaczeń komunikatów
programów. Podczas gdy tłumaczenia komunikatów
programów mogą używać innych katalogów
niż
po/, zazwyczaj prościej jest dostosować
się do konwencji.
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
POGUBI 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.
Podczas używania wielu języków, prosimy
poeksperymentować z różnymi ustawieniami w
po/Makevars, tak żeby uzyskać wszystkie potrzebne
komunikaty w pliku POT.
W szczególności problematyczne może być podanie
dwóch języków w
po/Makevars. Zamiast:
# Nie rób tego:
XGETTEXT_OPTIONS = -L Perl -L Shell --from-code=iso-8859-1
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
po/POTFILES.in.
Opcja --keywords może być również przydatna - patrz
dokumentacja programu xgettext.
Wypełnianie katalogu po/¶
Tak więc należy utworzyć główny katalog
po/, a następnie wypełnić go,
używając przykładowych plików z
/usr/share/doc/po4a/examples/.
- LINGUAS
- Musi występować, nawet jeśli będzie pusty.
Zawiera listę tłumaczeń - każda linia
niezaczynająca się od "#" musi odpowiadać
istniejącemu plikowi PO, na przykład jeżeli plik
LINGUAS zawiera pojedynczą linię "fr", to
obok pliku LINGUAS, musi istnieć plik fr.po.
$ cat po/LINGUAS
cs
de
fr
$
Zgodnie z konwencją, plik LINGUAS jest posortowany
alfabetycznie, jednakże jest to przeprowadzane ręcznie.
- POTFILES.in
- Lista plików zawierających komunikaty do
przetłumaczenia pochodzące np. ze skryptów.
Jeżeli jest używany katalog po/ najwyższego
poziomu, ścieżki powinny być względne w
stosunku do głównego katalogu, a nie w stosunku do katalogu
po/.
$ ls -l
myscript.pl
another.pl
foo/support.pl
po/
po/POTFILES.in
$ cat po/POTFILES.in
myscript.pl
another.pl
foo/support.pl
$
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 POD. Tak więc nie
będzie problemem wymienienie tego samego pliku zarówno w
po/POTFILES.in, jak i doc/po4a-build.conf
- Makevars-perl.example
- Jeśli skrypty są skryptami Perla, proszę
skopiować ten przykład do pliku po/Makevars, a
następnie dopasować do własnych potrzeb.
- Makevars-shell.example
- Jeśli skrypty są skryptami powłoki, proszę
skopiować ten przykład do pliku po/Makevars, a
następnie dopasować do własnych potrzeb.
- po4a-build.make
- Proszę skopiować ten przykładowy plik do
po/Makefile. Nie powinien wymagać późniejszej
edycji, jednakże może istnieć potrzeba aktualizowania
go z /usr/share/doc/po4a/examples/po4a-build.make, 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).
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.
clean:
$(MAKE) -C po/ clean
install:
$(MAKE) -C po/ install DESTDIR=$(DESTDIR)
dist:
$(MAKE) -C po/ pot
(W projekcie korzystającym z Autotools, nastąpiłoby to
automatycznie po dodaniu
po do wartości zmiennej
"SUBDIRS" value w
Makefile.am.)
Utrzymywanie¶
Tłumaczenie komunikatów skryptów nie jest tak proste jak w
po4a-build w tym względzie, że dodanie nowego
tłumaczenia wymaga edycji pliku
po/LINGUAS, jednakże
aktualizowanie tłumaczenia sprowadza się do zastąpienia
odpowiedniego pliku PO jego nową wersją.
W zależności od sposobu przygotowywania archiwum
źródłowego, może być potrzebne wpisanie
nowych plików PO w pliku
MANIFEST lub dodanie ich do
skryptów generujących archiwum (dotyczy to również
po4a-build).
Pliki
*.mo lub
*.gmo w katalogu
po/ można
usunąć.
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ć.
AUTORZY¶
Neil Williams <linux@codehelp.co.uk>
TŁUMACZENIE¶
Robert Luberda <robert@debian.org>