LOCALE::PO4A::PO.3PM(1) User Contributed Perl Documentation NAZWA Locale::Po4a::Po - modul manipulujacy plikami PO SKLADNIA 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'); # Wyciagniecie tlumaczenia $pofile->gettext("Hello"); # zwraca 'bonjour' # Zapisanie z powrotem do pliku $pofile->write('inny_plik.po'); OPIS Locale::Po4a::Po jest modulem pozwalajacym manipulowac katalogami wiadomosci. Mozna zaladowac i zapisac plik po (ktorego rozszerzeniem czesto jest po), mozna zbudowac nowe wpisy w locie albo zazadac przetlumaczenia komunikatu. For a more complete description of message catalogs in the PO format and their use, please refer to the info documentation of the gettext program (node "`PO Files"'). Ten modul jest czescia projektu po4a, ktorego celem jest uzycie plikow PO (z zalozenia przeznaczonych do ulatwienia tlumaczenia komunikatow programu) do tlumaczenia wszystkiego, wlaczajac dokumentacje (strony podrecznika man, strony info), opisy pakietow, szablony debconfa i wszystkiego, co moze korzystac z tego. OPCJE AKCEPTOWANE PRZEZ MODUL --porefs type Specify the reference format. Argument type can be one of never to not produce any reference, file to only specify the file without the line number, counter to replace line number by an increasing counter, and full to include complete references (default: full). --wrap-po no|newlines|number (default: 76) Specify how the po file should be wrapped. This gives the choice between either files that are nicely wrapped but could lead to git conflicts, or files that are easier to handle automatically, but harder to read for humans. Historically, the gettext suite has reformatted the po files at the 77th column for cosmetics. This option specifies the behavior of po4a. If set to a numerical value, po4a will wrap the po file after this column and after newlines in the content. If set to newlines, po4a will only split the msgid and msgstr after newlines in the content. If set to no, po4a will not wrap the po file at all. The reference comments are always wrapped by the gettext tools that we use internally. Note that this option has no impact on how the msgid and msgstr are wrapped, i.e. on how newlines are added to the content of these strings. --msgid-bugs-address adres@e-mail Ustawia adres, pod ktory nalezy zglaszac bledy w polach msgid. Domyslnie, utworzone pliki POT nie zawieraja naglowkow Report- Msgid-Bugs-To. --copyright-holder string Ustawia wlasciciela praw autorskich w naglowku POT. Domyslna wartoscia jest "Free Software Foundation, Inc." --package-name nazwa Ustawia nazwe pakietu w naglowku POT. Domyslna wartoscia jest "PACKAGE". --package-version wersja Ustawia wersje pakietu w naglowku pliku POT. Domyslna wartoscia jest "VERSION". Functions concerning entire message catalogs new() Tworzy nowy katalog wiadomosci. Jesli podano argument, jest on nazwa pliku PO, ktory powinien byc zaladowany. read($) Czyta plik PO (o nazwie podanej jako argument). Wczesniej istniejace wpisy nie sa usuwane, a nowe wpisy sa dodawane na koncu katalogu. write($) Zapisuje biezacy katalog do podanego pliku. write_if_needed($$) Podobne do write, ale jezeli pliki PO lub POT juz istnieja, to wynik zostanie zapisany do pliku tymczasowego, ktory bedzie porownany z istniejacym plikiem, aby sprawdzic, czy aktualizacja jest rzeczywiscie potrzebna (pozwala to uniknac zmieniania pliku POT tylko po to, by zaktualizowac odnosniki lub pole POT-Creation- Date). filter($) Funkcja wyodrebnia katalog wiadomosci z istniejacego katalogu. W pliku wynikowym beda umieszczone tylko te wpisy, do ktorych istnieje odniesienie w podanym pliku. Funkcja przetwarza swoje argumenty, generuje z nich definicje funkcji Perla, ewaluuje te definicje i filtruje pola, dla ktorych ta wygenerowana funkcja zwroci wartosc true. Czasami uwielbiam Perla ;) Funkcje uzywajace katalogu wiadomosci do tlumaczen gettext($%) Zada przetlumaczenia przez biezacy katalog komunikatu podanego jako argument. Jesli nie znaleziono tlumaczenia, funkcja zwroci oryginalny (nieprzetlumaczony) komunikat. Po komunikacie do przetlumaczenia mozna przekazac hasha z dodatkowymi argumentami. Ponizej podano poprawne wpisy: wrap wartosc logiczna, okreslajaca, czy biale znaki w tekscie maja znaczenie. Jesli tak, to funkcja kanonizuje tekst przed wyszukaniem tlumaczenia oraz zawija tekst wynikowy. wrapcol kolumna, w ktorej tekst powinien byc zawijany (domyslnie: 76). stats_get() Zwraca statystyki dotyczace stosunku trafien od ostatniego wywolania funkcji stats_clear(). Prosze zauwazyc, ze to nie sa te same statystyki, ktore wypisuje msgfmt --statistic. Tutaj, statystyki dotycza biezacego uzycia pliku PO, a msgfmt podaje stan pliku. Przyklad uzycia: [klika uzyc pliku PO do tlumaczenia rzeczy] ($percent,$hit,$queries) = $pofile->stats_get(); print "Do tej pory znalezlismy tlumaczenia $percent\% ($hit z $queries) komunikatow.\n"; stats_clear() Czysci statystyki dotyczace trafienia gettexta. Funkcje budujace katalog wiadomosci push(%) Dodaje nowy wpis na koniec biezacego katalogu. Argumenty powinny byc przekazane w hashu. Dostepne klucze: msgid lancuch znakow w oryginalnym jezyku. msgstr tlumaczenie. reference wskazanie, gdzie dany komunikat zostal znaleziony. Przyklad plik.c:46 (w linii 46 pliku "plik.c"). W razie wielokrotnych wystapien moze byc to lista rozdzielona znakami spacji. comment komentarz dodany tutaj recznie (przez tlumaczy). Format jest dowolny. automatic komentarz dodany automatycznie przez program wyciagajacy komunikaty. Szczegoly 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 mozna znalezc w dokumentacji pakietu gettext. type jest to w wiekszosci argument wewnetrzny uzywany podczas przeksztalcania dokumentow do formatu gettext. Idea jest przetworzenie do obiektu PO zarowno oryginalu, jak i tlumaczenia, scalenie ich, uzywajac msgid jednego jako msgstr drugiego i msgid drugiego jako msgstr pierwszego. Aby miec pewnosc, ze wszystko jest OK, kazdy msgid w obiekcie ma przypisany typ, oparty na strukturze dokumentu (jak "chap", "sect1", "p" w formacie DocBook). Jesli typy komunikatow nie sa takie same, oznacza to, ze struktura obu plikow jest rozna i proces konczy sie bledem. Ta informacja jest zapisywana jako automatyczny komentarz w pliku PO, poniewaz dostarcza tlumaczom kontekstu o komunikatach, ktore tlumacza. wrap wartosc logiczna, okreslajaca, czy biale znaki moga byc scalane. Jesli tak, komunikat przed uzyciem bedzie ujednolicony. Ta informacja jest zapisywana do pliku PO z uzyciem flagi wrap lub no-wrap. wrapcol ignored; the key is kept for backward computability. Rozne funkcje count_entries() Zwraca liczbe wpisow w katalogu (nie liczac naglowka). count_entries_doc() Zwraca liczbe wpisow w dokumencie. Komunikaty pojawiajace sie wiele razy w tym dokumencie beda policzone wiele razy. msgid($) Zwraca msgid o zadanym numerze. msgid_doc($) Zwraca msgid znajdujace sie w dokumencie na podanej pozycji. type_doc($) Returns the type of the msgid with the given position in the document. This is probably only useful to gettextization, and it's stored separately from {$msgid}{'type'} because the later location may be overwritten by another type when the $msgid is duplicated in the master document. get_charset() Returns the character set specified in the PO header. If it hasn't been set, it will return "UTF-8". AUTORZY Denis Barbier Martin Quinson (mquinson#debian.org) TLUMACZENIE Robert Luberda perl v5.38.2 2024-06-26 LOCALE::PO4A::PO.3PM(1)