Provided by: po4a_0.45-1_all bug

NAZWA

       Locale::Po4a::Po - moduł manipulujący plikami PO

SKŁADNIA

           use Locale::Po4a::Po;
           my $pofile=Locale::Po4a::Po->new();

           # Czytanie pliku PO
           $pofile->read('plik.po');

           # Dodanie wpisu
           $pofile->push('msgid' => 'Hello', 'msgstr' => 'bonjour',
                         'flags' => "wrap", 'reference'=>'file.c:46');

           # Wyciągnięcie tłumaczenia
           $pofile->gettext("Hello"); # zwraca 'bonjour'

           # Zapisanie z powrotem do pliku
           $pofile->write('inny_plik.po');

OPIS

       Locale::Po4a::Po jest modułem pozwalającym manipulować katalogami wiadomości. Można
       załadować i zapisać plik po (którego rozszerzeniem często jest po), można zbudować nowe
       wpisy w locie albo zażądać przetłumaczenia komunikatu.

       Bardziej całościowy opis katalogów wiadomości w formacie PO i ich użycia można znaleźć w
       dokumentacji programu gettext.

       Ten moduł jest częścią projektu po4a, którego celem jest użycie plików PO (z założenia
       przeznaczonych do ułatwienia tłumaczenia komunikatów programu) do tłumaczenia wszystkiego,
       włączając dokumentację (strony podręcznika man, strony info), opisy pakietów, szablony
       debconfa i wszystkiego, co może korzystać z tego.

OPCJE AKCEPTOWANE PRZEZ MODUŁ

       porefs type[,wrap|nowrap]
           Specify the reference format. Argument type can be one of none to not produce any
           reference, noline to not specify the line number (more accurately all line numbers are
           replaced by 1), counter to replace line number by an increasing counter, and full to
           include complete references.

           Argument can be followed by a comma and either wrap or nowrap keyword.  References are
           written by default on a single line.  The wrap option wraps references on several
           lines, to mimic gettext tools (xgettext and msgmerge).  This option will become the
           default in a future release, because it is more sensible.  The nowrap option is
           available so that users who want to keep the old behavior can do so.

       --msgid-bugs-address adres@e-mail
           Ustawia adres, pod który należy zgłaszać błędy w polach msgid. Domyślnie, utworzone
           pliki POT nie zawierają nagłówków Report-Msgid-Bugs-To.

       --copyright-holder string
           Ustawia właściciela praw autorskich w nagłówku POT. Domyślną wartością jest "Free
           Software Foundation, Inc."

       --package-name nazwa
           Ustawia nazwę pakietu w nagłówku POT. Domyślną wartością jest "PACKAGE".

       --package-version wersja
           Ustawia wersję pakietu w nagłówku pliku POT. Domyślną wartością jest "VERSION".

Funkcje całego katalogu wiadomości

       new()
           Tworzy nowy katalog wiadomości. Jeśli podano argument, jest on nazwą pliku PO, który
           powinien być załadowany.

       read($)
           Czyta plik PO (o nazwie podanej jako argument). Wcześniej istniejące wpisy nie są
           usuwane, a nowe wpisy są dodawane na końcu katalogu.

       write($)
           Zapisuje bieżący katalog do podanego pliku.

       write_if_needed($$)
           Podobne do write, ale jeżeli pliki PO lub POT już istnieją, to wynik zostanie zapisany
           do pliku tymczasowego, który będzie porównany z istniejącym plikiem, aby sprawdzić,
           czy aktualizacja jest rzeczywiście potrzebna (pozwala to uniknąć zmieniania pliku POT
           tylko po to, by zaktualizować odnośniki lub pole POT-Creation-Date).

       gettextize($$)
           Funkcja tworzy jeden katalog przetłumaczonych wiadomości z dwóch katalogów - oryginału
           i tłumaczenia. Proces tej jest opisany w sekcji Proces przekształcania do formatu
           gettext: jak to działa? podręcznika po4a(7).

       filter($)
           Funkcja wyodrębnia katalog wiadomości z istniejącego katalogu. W pliku wynikowym będą
           umieszczone tylko te wpisy, do których istnieje odniesienie w podanym pliku.

           Funkcja przetwarza swoje argumenty, generuje z nich definicję funkcji Perla, ewaluuje
           tę definicję i filtruje pola, dla których ta wygenerowana funkcja zwróci wartość true.

           Czasami uwielbiam Perla ;)

       to_utf8()
           Zmienia kodowanie wpisów msgstr pliku PO do UTF-8. Nic nie robi, jeśli w pliku PO nie
           jest podane kodowanie znaków (wartość "CHARSET") albo gdy jest ono ustawione na UTF-8
           lub ASCII.

Funkcje używające katalogu wiadomości do tłumaczeń

       gettext($%)
           Żąda przetłumaczenia przez bieżący katalog komunikatu podanego jako argument. Jeśli
           nie znaleziono tłumaczenia, funkcja zwróci oryginalny (nieprzetłumaczony) komunikat.

           Po komunikacie do przetłumaczenia można przekazać hasha z dodatkowymi argumentami.
           Poniżej podano poprawne wpisy:

           wrap
               wartość logiczna, określająca, czy białe znaki w tekście mają znaczenie. Jeśli
               tak, to funkcja kanonizuje tekst przed wyszukaniem tłumaczenia oraz zawija tekst
               wynikowy.

           wrapcol
               kolumna, w której tekst powinien być zawijany (domyślnie: 76).

       stats_get()
           Zwraca statystyki dotyczące stosunku trafień od ostatniego wywołania funkcji
           stats_clear(). Proszę zauważyć, że to nie są te same statystyki, które wypisuje msgfmt
           --statistic. Tutaj, statystyki dotyczą bieżącego użycia pliku PO, a msgfmt podaje stan
           pliku. Przykład użycia:

               [klika użyć pliku PO do tłumaczenia rzeczy]

               ($percent,$hit,$queries) = $pofile->stats_get();
               print "Do tej pory znaleźliśmy tłumaczenia $percent\% ($hit z $queries) komunikatów.\n";

       stats_clear()
           Czyści statystyki dotyczące trafienia gettexta.

Funkcje budujące katalog wiadomości

       push(%)
           Dodaje nowy wpis na koniec bieżącego katalogu. Argumenty powinny być przekazane w
           hashu. Dostępne klucze:

           msgid
               łańcuch znaków w oryginalnym języku.

           msgstr
               tłumaczenie.

           reference
               wskazanie, gdzie dany komunikat został znaleziony. Przykład plik.c:46 (w linii 46
               pliku "plik.c"). W razie wielokrotnych wystąpień może być to lista rozdzielona
               znakami spacji.

           comment
               komentarz dodany tutaj ręcznie (przez tłumaczy). Format jest dowolny.

           automatic
               komentarz dodany automatycznie przez program wyciągający komunikaty. Szczegóły w
               opisie opcji --add-comments programu xgettext.

           flags
               rozdzielona spacjami lista wszystkich zdefiniowanych flag dla tego wpisu.

               Poprawne flagi: c-text, python-text, lisp-text, elisp-text, librep-text,
               smalltalk-text, java-text, awk-text, object-pascal-text, ycp-text, tcl-text, wrap,
               no-wrap i fuzzy.

               Ich znaczenie można znaleźć w dokumentacji pakietu gettext.

           type
               jest to w większości argument wewnętrzny używany podczas przekształcania
               dokumentów do formatu gettext. Ideą jest przetworzenie do obiektu PO zarówno
               oryginału, jak i tłumaczenia, scalenie ich, używając msgid jednego jako msgstr
               drugiego i msgid drugiego jako msgstr pierwszego. Aby mieć pewność, że wszystko
               jest OK, każdy msgid w obiekcie ma przypisany typ, oparty na strukturze dokumentu
               (jak "chap", "sect1", "p" w formacie DocBook). Jeśli typy komunikatów nie są takie
               same, oznacza to, że struktura obu plików jest różna i proces kończy się błędem.

               Ta informacja jest zapisywana jako automatyczny komentarz w pliku PO, ponieważ
               dostarcza tłumaczom kontekstu o komunikatach, które tłumaczą.

           wrap
               wartość logiczna, określająca, czy białe znaki mogą być scalane. Jeśli tak,
               komunikat przed użyciem będzie ujednolicony.

               Ta informacja jest zapisywana do pliku PO z użyciem flagi wrap lub no-wrap.

           wrapcol
               kolumna, w której tekst powinien być zawijany (domyślnie: 76).

               Ta informacja nie jest zapisywana w pliku PO.

Różne funkcje

       count_entries()
           Zwraca liczbę wpisów w katalogu (nie licząc nagłówka).

       count_entries_doc()
           Zwraca liczbę wpisów w dokumencie. Komunikaty pojawiające się wiele razy w tym
           dokumencie będą policzone wiele razy.

       msgid($)
           Zwraca msgid o zadanym numerze.

       msgid_doc($)
           Zwraca msgid znajdujące się w dokumencie na podanej pozycji.

       get_charset()
           Zwraca kodowanie znaków określone w nagłówku pliku PO. Jeśli nie zostało ustawione, to
           zwraca tekst "CHARSET".

       set_charset($)
           Ustawia kodowanie znaków nagłówka pliku PO na wartość określoną przez pierwszy
           argument. Jeśli ta funkcja nie zostanie nigdy wywołana (i nie będzie przeczytany żaden
           plik mający podane kodowanie znaków), zostanie pozostawiona domyślna wartość, czyli
           "CHARSET". Ta wartość nie zmienia zachowania modułu, jest używana tylko do wypełnienia
           odpowiedniego pola nagłówka; zostanie także zwrócona przez get_charset().

AUTORZY

        Denis Barbier <barbier@linuxfr.org>
        Martin Quinson (mquinson#debian.org)

TŁUMACZENIE

        Robert Luberda <robert@debian.org>