Locale::Po4a::Sgml.3pm

Autres langues

Langue: pl

Version: 2008-11-05 (ubuntu - 08/07/09)

Section: 3 (Bibliothèques de fonctions)

NAZWA

Locale::Po4a::Sgml - Konwersja dokumentA~Xw sgml z/do plikA~Xw PO

OPIS

Celem projektu po4a (``po for anything'') jest uA°Xatwienie tA°XumaczeA°X (oraz, co ciekawsze, zarzA.Xdzania tA°Xumaczeniami) przy uA°Xyciu narzA.Xdzi gettext w tych obszarach, gdzie nie byA°Xy uA°Xywane, jak na przykA°Xad w obszarze dokumentacji.

Locale::Po4a::Sgml jest moduA°Xem uA°XatwiajA.Xcym tA°Xumaczenie dokumentacji w formacie SGML do innych jA.XzykA~Xw [uA°Xywanych przez ludzi].

ModuA°X ten do przetworzenia plikA~Xw SGML uA°Xywa programu nsgmls. ProszA.X siA.X upewniA.X, A°Xe program ten wraz z definicjami DTD plikA~Xw SGMLjest zainstalowany w systemie.

OPCJE AKCEPTOWANE PRZEZ TEN MODUA°X

debug
Rozdzielona spacjami lista sA°XA~Xw kluczowych, okreA°XlajA.Xca, ktA~XrA.X czA.XA°XA.X chcesz debugowaA.X. MoA°Xliwe wartoA°Xci: tag, generic, entities i refs.
verbose
Daje wiA.Xcej informacji na temat tego, co siA.X dzieje.
translate
Rozdzielona spacjami lista dodatkowych elementA~Xw (oprA~Xcz tych zdefiniowanych w DTD), ktA~Xrych zawartoA°XA.X powinna utworzyA.X dodatkowy msgid.
section
Rozdzielona spacjami lista dodatkowych elementA~Xw (oprA~Xcz tych zdefiniowanych w DTD), zawierajA.Xcych inne elementy, wA°XrA~Xd ktA~Xrych istniejA.X elementy naleA°XA.Xce do kategorii ``translate''.
indent
Rozdzielona spacjami lista elementA~Xw, ktA~Xre zwiA.XkszajA.X poziom wciA.Xcia.
verbatim
Struktura takich elementA~Xw nie powinna byA.X zmieniana. Tekst akapitu nie bA.Xdzie zawijany i nie zostanA.X dodane A°Xadne kosmetyczne dodatkowe spacje czy znaki nowej linii.
empty
Elementy nie muszA.X byA.X zamkniA.Xte.
ignore
Elementy ignorowane i uznawane przez po4a za zwykA°Xe dane znakowe. MogA.X byA.X one czA.XA°XciA.X msgid. Na przykA°Xad <b> jest dobrym kandydatem do tej kategorii, poniewaA°X dodanie go w sekcji translate stworzyA°Xoby msgid, nie bA.XdA.Xce caA°Xymi zdaniami, co niewA.Xtpliwie jest zA°Xe.
attributes
Rozdzielona spacjami lista atrybutA~Xw, ktA~Xre muszA.X byA.X przetA°Xumaczone. MoA°Xna okreA°XliA.X atrybuty przez ich nazwA.X (na przykA°Xad ``lang''), ale moA°Xna takA°Xe uA°XyA.X hierarchii elementA~Xw jako przedrostkA~Xw, tak aby okreA°XliA.X, A°Xe ten atrybut bA.Xdzie przetA°Xumaczony tylko wtedy, gdy naleA°Xy do podanego elementu. Na przykA°Xad: <bbb><aaa>lang okreA°Xla, A°Xe atrybut lang bA.Xdzie przetA°Xumaczony tylko wtedy, gdy wystA.Xpuje w elemencie <aaa>, ktA~Xry z kolei jest zawarty w elemencie <bbb>. Nazwy elementA~Xw sA.X tak naprawdA.X wyraA°Xeniami regularnymi, tak wiA.Xc moA°Xna przykA°Xadowo uA°XyA.X <aaa|bbbb>lang do przetA°Xumaczenia tylko tych atrybutA~Xw lang, ktA~Xre sA.X zawarte w elementach <aaa> lub <bbb>.
qualify
Rozdzielona spacjami lista atrybutA~Xw, ktA~Xrych tA°Xumaczenia muszA.X byA.X A°XA.Xczone z nazwA.X atrybutu. ProszA.X zauwaA°XyA.X, A°Xe ta opcja automatycznie doda podany atrybut do listy ``attributes''.
force
Kontynuowanie dziaA°Xania, nawet gdy DTD nie jest znany lub gdy nsgmls wykryje bA°XA.Xdy w pliku wejA°Xciowym.
include-all
DomyA°Xlnie, msgid zawierajA.Xce tylko jednA.X encjA.X (jak ``&version;'') sA.X pomijane, zapewniajA.Xc komfort tA°Xumaczowi. Aktywowanie tej opcji uniemoA°Xliwia tA.X optymalizacjA.X. MoA°Xe byA.X jednak uA°Xyteczne, gdy dokument zawiera konstrukcje takie, jak ``<title>&Aacute;</title>'', choA.X prawdA.X mA~XwiA.Xc, wA.XtpiA.X, by takie coA°X siA.X mogA°Xo kiedykolwiek zdarzyA.X...
ignore-inclusion
Rozdzielona spacjami lista encji, ktA~Xre nie bA.XdA.X wA°XA.Xczane. Tej opcji naleA°Xy uA°XywaA.X ostroA°Xnie: moA°Xe spowodowaA.X, A°Xe nsgmls (uA°Xywany wewnA.Xtrznie przez ten moduA°X) doda elementy i wygeneruje niepoprawny dokument wyjA°Xciowy.

STATUS MODUA°XU

Wynik jest doskonaA°Xy. Tj. wygenerowane dokumenty sA.X dokA°Xadnie takie same. Jednak wciA.XA°X jest parA.X problemA~Xw:
wyjA°Xcie bA°XA.XdA~Xw programu nsgmls jest przekierowane do /dev/null, co z pewnoA°XciA.X jest zA°Xym pomysA°Xem. Nie wiem, jak temu zapobiec.

Problemem jest to, A°Xe musiaA°Xem ``ochroniA.X'' warunkowe wA°XA.Xczenia (rzeczy takie jak "<! [ %foo [" i "]]>") w nsgmls. W przeciwnym razie nsgmls je zjada, a nie mam pojA.Xcia jak je przywrA~XciA.X w koA°Xcowym dokumencie. Aby temu zapobiec, przepisaA°Xem je jako {PO4A-beg-coA°X}> i "{PO4A-end}".

Problem z tym jest taki, A°Xe "{PO4A-end}" i podobne, ktA~Xre dodam, sA.X poprawne w dokumencie (ale nie w elemencie <p> lub podobnym).

Wszystko dziaA°Xa dobrze, z takim przekierowaniem wyjA°Xcia nsgmls. Niestety uniemoA°Xliwia nam to wykrycie, A°Xe dokument jest A°Xle sformatowany.

DziaA°Xa to tylko z dtd debiandoc i docbook. Dodanie obsA°Xugi nowego dtd powinno byA.X bardzo proste. Mechanizm jest taki sam dla kaA°Xdego dtd, po prostu naleA°Xy podaA.X listA.X istniejA.Xcych elementA~Xw i ich charakterystykA.X.

Zgadzam siA.X, to wymaga dokA°Xadniejszej dokumentacji, jednak jest to wciA.XA°X wersja beta, a ja nienawidzA.X dokumentowania rzeczy, ktA~Xre siA.X mogA.X zmieniA.X i zmieniA.X.

OstrzeA°Xenie: obsA°Xuga dtd jest caA°Xkiem eksperymentalna. Nie przeczytaA°Xem A°Xadnego podrA.Xcznika, A°Xeby znaleA°XA.X definicje kaA°Xdego elementu. DodaA°Xem definicje elementA~Xw, ktA~Xre dziaA°XajA.X dla kilku dokumentA~Xw znalezionych w sieci. JeA°Xli TwA~Xj dokument uA°Xywa wiA.Xcej elementA~Xw niA°X mA~Xj, nie bA.Xdzie dziaA°XaA°X. Jak napisaA°Xem wyA°Xej, poprawienie tego powinno byA.X proste.

TestowaA°Xem docbook tylko na dokumencie SAG (System Administrator Guide), jednak jest on caA°Xkiem spory, wiA.Xc powinien uA°XywaA.X wiA.XkszoA°Xci rzeczy specyficznych dla tego formatu.

Dla debiandoc, przetestowaA°Xem kilka podrA.XcznikA~Xw z DDP, ale jeszcze nie wszystkie.

W razie doA°XA.Xczania plikA~Xw odnoA°Xniki do komunikatA~Xw wiadomoA°Xci w plikach po (tj. linie jak "#: en/titletoc.sgml:9460") bA.XdA.X niepoprawne.

Dzieje siA.X tak dlatego, A°Xe wstA.Xpnie przetwarzam ten plik, aby ochroniA.X warunkowe wA°XA.Xczenia (rzeczy takie jak "<! [ %foo [" i "]]>") oraz niektA~Xre encja (jak &version) przed nsgmls poniewaA°X chcA.X je otrzymaA.X bez zmian w wygenerowanym dokumencie. Dlatego, tworzA.X tymczasowA.X kopiA.X pliku wejA°Xciowego i na niej robiA.X wszystkie zmiany przed przekazaniem go programowi nsgmls do przetwarzania.

A°Xeby to dziaA°XaA°Xo, zamieniam encje proszA.Xce o wA°XA.Xczenie pliku zawartoA°XciA.X podanego pliku (dlatego mogA.X ochroniA.X to, co trzeba, takA°Xe w plikach wA°XA.Xczanych). Ale do tej pory nic nie jest robione, aby poprawiA.X pA~XA°Xniej odnoA°Xniki (tj. nazwA.X pliku i numer linii). Nie jestem pewien, jak moA°Xna by to najlepiej zrobiA.X.

AUTORZY

ModuA°X jest zaadaptowanA.X wersjA.X sgmlspl (postprocesora SGML parserA~Xw SGMLS i NSGMLS), ktA~Xry byA°X:
  Copyright (c) 1995 by David Megginson <dmeggins@aix1.uottawa.ca>
 
 

Adaptacji do po4a dokonali:

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

TA°XUMACZENIE

  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; moA°Xna go redystrybuowaA.X i/lub modyfikowaA.X zgodnie z warunkami licencji GPL (patrz plik COPYING).