Locale::Po4a::Sgml.3pm

Autres langues

Langue: pl

Version: 2009-02-26 (fedora - 06/07/09)

Section: 3 (Bibliothèques de fonctions)

NAZWA

Locale::Po4a::Sgml - Konwersja dokumentow sgml z/do plikow PO

OPIS

Celem projektu po4a (``po for anything'') jest uXatwienie tXumaczeX (oraz, co ciekawsze, zarzXdzania tXumaczeniami) przy uXyciu narzXdzi gettext w tych obszarach, gdzie nie byXy uXywane, jak na przykXad w obszarze dokumentacji.

Locale::Po4a::Sgml jest moduXem uXatwiajXcym tXumaczenie dokumentacji w formacie SGML do innych jXzykow [uXywanych przez ludzi].

ModuX ten do przetworzenia plikow SGML uXywa programu nsgmls. ProszX siX upewniX, Xe program ten wraz z definicjami DTD plikow SGMLjest zainstalowany w systemie.

OPCJE AKCEPTOWANE PRZEZ TEN MODUX

debug
Rozdzielona spacjami lista sXow kluczowych, okreXlajXca, ktorX czXXX chcesz debugowaX. MoXliwe wartoXci: tag, generic, entities i refs.
verbose
Daje wiXcej informacji na temat tego, co siX dzieje.
translate
Rozdzielona spacjami lista dodatkowych elementow (oprocz tych zdefiniowanych w DTD), ktorych zawartoXX powinna utworzyX dodatkowy msgid.
section
Rozdzielona spacjami lista dodatkowych elementow (oprocz tych zdefiniowanych w DTD), zawierajXcych inne elementy, wXrod ktorych istniejX elementy naleXXce do kategorii ``translate''.
indent
Rozdzielona spacjami lista elementow, ktore zwiXkszajX poziom wciXcia.
verbatim
Struktura takich elementow nie powinna byX zmieniana. Tekst akapitu nie bXdzie zawijany i nie zostanX dodane Xadne kosmetyczne dodatkowe spacje czy znaki nowej linii.
empty
Elementy nie muszX byX zamkniXte.
ignore
Elementy ignorowane i uznawane przez po4a za zwykXe dane znakowe. MogX byX one czXXciX msgid. Na przykXad <b> jest dobrym kandydatem do tej kategorii, poniewaX dodanie go w sekcji translate stworzyXoby msgid, nie bXdXce caXymi zdaniami, co niewXtpliwie jest zXe.
attributes
Rozdzielona spacjami lista atrybutow, ktore muszX byX przetXumaczone. MoXna okreXliX atrybuty przez ich nazwX (na przykXad ``lang''), ale moXna takXe uXyX hierarchii elementow jako przedrostkow, tak aby okreXliX, Xe ten atrybut bXdzie przetXumaczony tylko wtedy, gdy naleXy do podanego elementu. Na przykXad: <bbb><aaa>lang okreXla, Xe atrybut lang bXdzie przetXumaczony tylko wtedy, gdy wystXpuje w elemencie <aaa>, ktory z kolei jest zawarty w elemencie <bbb>. Nazwy elementow sX tak naprawdX wyraXeniami regularnymi, tak wiXc moXna przykXadowo uXyX <aaa|bbbb>lang do przetXumaczenia tylko tych atrybutow lang, ktore sX zawarte w elementach <aaa> lub <bbb>.
qualify
Rozdzielona spacjami lista atrybutow, ktorych tXumaczenia muszX byX XXczone z nazwX atrybutu. ProszX zauwaXyX, Xe ta opcja automatycznie doda podany atrybut do listy ``attributes''.
force
Kontynuowanie dziaXania, nawet gdy DTD nie jest znany lub gdy nsgmls wykryje bXXdy w pliku wejXciowym.
include-all
DomyXlnie, msgid zawierajXce tylko jednX encjX (jak ``&version;'') sX pomijane, zapewniajXc komfort tXumaczowi. Aktywowanie tej opcji uniemoXliwia tX optymalizacjX. MoXe byX jednak uXyteczne, gdy dokument zawiera konstrukcje takie, jak ``<title>&Aacute;</title>'', choX prawdX mowiXc, wXtpiX, by takie coX siX mogXo kiedykolwiek zdarzyX...
ignore-inclusion
Rozdzielona spacjami lista encji, ktore nie bXdX wXXczane. Tej opcji naleXy uXywaX ostroXnie: moXe spowodowaX, Xe nsgmls (uXywany wewnXtrznie przez ten moduX) doda elementy i wygeneruje niepoprawny dokument wyjXciowy.

STATUS MODUXU

Wynik jest doskonaXy. Tj. wygenerowane dokumenty sX dokXadnie takie same. Jednak wciXX jest parX problemow:
wyjXcie bXXdow programu nsgmls jest przekierowane do /dev/null, co z pewnoXciX jest zXym pomysXem. Nie wiem, jak temu zapobiec.

Problemem jest to, Xe musiaXem ``ochroniX'' warunkowe wXXczenia (rzeczy takie jak "<! [ %foo [" i "]]>") w nsgmls. W przeciwnym razie nsgmls je zjada, a nie mam pojXcia jak je przywrociX w koXcowym dokumencie. Aby temu zapobiec, przepisaXem je jako {PO4A-beg-coX}> i "{PO4A-end}".

Problem z tym jest taki, Xe "{PO4A-end}" i podobne, ktore dodam, sX poprawne w dokumencie (ale nie w elemencie <p> lub podobnym).

Wszystko dziaXa dobrze, z takim przekierowaniem wyjXcia nsgmls. Niestety uniemoXliwia nam to wykrycie, Xe dokument jest Xle sformatowany.

DziaXa to tylko z dtd debiandoc i docbook. Dodanie obsXugi nowego dtd powinno byX bardzo proste. Mechanizm jest taki sam dla kaXdego dtd, po prostu naleXy podaX listX istniejXcych elementow i ich charakterystykX.

Zgadzam siX, to wymaga dokXadniejszej dokumentacji, jednak jest to wciXX wersja beta, a ja nienawidzX dokumentowania rzeczy, ktore siX mogX zmieniX i zmieniX.

OstrzeXenie: obsXuga dtd jest caXkiem eksperymentalna. Nie przeczytaXem Xadnego podrXcznika, Xeby znaleXX definicje kaXdego elementu. DodaXem definicje elementow, ktore dziaXajX dla kilku dokumentow znalezionych w sieci. JeXli Twoj dokument uXywa wiXcej elementow niX moj, nie bXdzie dziaXaX. Jak napisaXem wyXej, poprawienie tego powinno byX proste.

TestowaXem docbook tylko na dokumencie SAG (System Administrator Guide), jednak jest on caXkiem spory, wiXc powinien uXywaX wiXkszoXci rzeczy specyficznych dla tego formatu.

Dla debiandoc, przetestowaXem kilka podrXcznikow z DDP, ale jeszcze nie wszystkie.

W razie doXXczania plikow odnoXniki do komunikatow wiadomoXci w plikach po (tj. linie jak "#: en/titletoc.sgml:9460") bXdX niepoprawne.

Dzieje siX tak dlatego, Xe wstXpnie przetwarzam ten plik, aby ochroniX warunkowe wXXczenia (rzeczy takie jak "<! [ %foo [" i "]]>") oraz niektore encja (jak &version) przed nsgmls poniewaX chcX je otrzymaX bez zmian w wygenerowanym dokumencie. Dlatego, tworzX tymczasowX kopiX pliku wejXciowego i na niej robiX wszystkie zmiany przed przekazaniem go programowi nsgmls do przetwarzania.

Xeby to dziaXaXo, zamieniam encje proszXce o wXXczenie pliku zawartoXciX podanego pliku (dlatego mogX ochroniX to, co trzeba, takXe w plikach wXXczanych). Ale do tej pory nic nie jest robione, aby poprawiX poXniej odnoXniki (tj. nazwX pliku i numer linii). Nie jestem pewien, jak moXna by to najlepiej zrobiX.

AUTORZY

ModuX jest zaadaptowanX wersjX sgmlspl (postprocesora SGML parserow SGMLS i NSGMLS), ktory byX:
  Copyright (c) 1995 by David Megginson <dmeggins@aix1.uottawa.ca>
 
 

Adaptacji do po4a dokonali:

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

TXUMACZENIE

  Robert Luberda <robert@debian.org>
 
 

PRAWA AUTORSKIE I LICENCJA

  Copyright (c) 1995 by David Megginson <dmeggins@aix1.uottawa.ca>
  Copyright 2002, 2003, 2004, 2005 by SPI, inc.
 
 

Program jest wolnym oprogramowaniem; moXna go redystrybuowaX i/lub modyfikowaX zgodnie z warunkami licencji GPL (patrz plik COPYING).