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>