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
 
  - Określa format odnośnika. Może to być:
      none - nie dodaje żadnych odnośników, noline
      - nie dodaje numeru linii, full - dodaje kompletne
    odnośniki.
 
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)