.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "Locale::Po4a::Sgml 3pm" .TH Locale::Po4a::Sgml 3pm "2020-08-19" "Narzędzia po4a" "Narzędzia po4a" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAZWA" .IX Header "NAZWA" Locale::Po4a::Sgml \- konwersja dokumentów \s-1SGML\s0 z/do plików \s-1PO\s0 .SH "OPIS" .IX Header "OPIS" Celem projektu po4a (\*(L"\s-1PO\s0 for anything\*(R") jest ułatwienie tłumaczeń (oraz, co ciekawsze, zarządzania tłumaczeniami) przy użyciu narzędzi gettext w tych obszarach, gdzie nie były używane, jak na przykład w obszarze dokumentacji. .PP Locale::Po4a::Sgml jest modułem ułatwiającym tłumaczenie dokumentacji w formacie \s-1SGML\s0 do innych języków [używanych przez ludzi]. .PP Moduł ten do przetworzenia plików \s-1SGML\s0 używa programu \fBonsgmls\fR(1). Proszę się upewnić, że program ten wraz z definicjami \s-1DTD\s0 plików SGMLjest zainstalowany w systemie. .SH "OPCJE AKCEPTOWANE PRZEZ MODUŁ" .IX Header "OPCJE AKCEPTOWANE PRZEZ MODUŁ" .IP "\fBdebug\fR" 4 .IX Item "debug" Rozdzielona spacjami lista słów kluczowych, określająca, którą część chcesz debugować. Możliwe wartości: tag, generic, entities i refs. .IP "\fBverbose\fR" 4 .IX Item "verbose" Daje więcej informacji na temat tego, co się dzieje. .IP "\fBtranslate\fR" 4 .IX Item "translate" Rozdzielona spacjami lista dodatkowych elementów (oprócz tych zdefiniowanych w \s-1DTD\s0), których zawartość powinna utworzyć dodatkowy msgid. .IP "\fBsection\fR" 4 .IX Item "section" Rozdzielona spacjami lista dodatkowych elementów (oprócz tych zdefiniowanych w \s-1DTD\s0), zawierających inne elementy, wśród których istnieją elementy należące do kategorii \fBtranslate\fR. .IP "\fBindent\fR" 4 .IX Item "indent" Rozdzielona spacjami lista elementów, które zwiększają poziom wcięcia. .IP "\fBverbatim\fR" 4 .IX Item "verbatim" Struktura takich elementów nie powinna być zmieniana. Tekst akapitu nie będzie zawijany i nie zostaną dodane żadne kosmetyczne dodatkowe spacje czy znaki nowej linii. .IP "\fBempty\fR" 4 .IX Item "empty" Elementy nie muszą być zamknięte. .IP "\fBignore\fR" 4 .IX Item "ignore" Elementy ignorowane i uznawane przez po4a za zwykłe dane znakowe. Mogą być one częścią msgid. Na przykład jest dobrym kandydatem do tej kategorii, ponieważ dodanie go w sekcji translate stworzyłoby msgid, nie będące całymi zdaniami, co niewątpliwie jest złe. .IP "\fBattributes\fR" 4 .IX Item "attributes" Rozdzielona spacjami lista atrybutów, które muszą być przetłumaczone. Można określić atrybuty przez ich nazwę (na przykład \*(L"lang\*(R"), ale można także użyć hierarchii elementów jako przedrostków, tak aby określić, że ten atrybut będzie przetłumaczony tylko wtedy, gdy należy do podanego elementu. Na przykład: lang określa, że atrybut lang będzie przetłumaczony tylko wtedy, gdy występuje w elemencie , który z kolei jest zawarty w elemencie . Nazwy elementów są tak naprawdę wyrażeniami regularnymi, tak więc można przykładowo użyć lang do przetłumaczenia tylko tych atrybutów lang, które są zawarte w elementach lub . .IP "\fBqualify\fR" 4 .IX Item "qualify" Rozdzielona spacjami lista atrybutów, których tłumaczenia muszą być łączone z nazwą atrybutu. Proszę zauważyć, że ta opcja automatycznie doda podany atrybut do listy \*(L"attributes\*(R". .IP "\fBforce\fR" 4 .IX Item "force" Kontynuowanie działania, nawet gdy \s-1DTD\s0 nie jest znany lub gdy onsgmls wykryje błędy w pliku wejściowym. .IP "\fBinclude-all\fR" 4 .IX Item "include-all" Domyślnie, msgid zawierające tylko jedną encję (jak \*(L"&version;\*(R") są pomijane, zapewniając komfort tłumaczowi. Aktywowanie tej opcji uniemożliwia tę optymalizację. Może być jednak użyteczne, gdy dokument zawiera konstrukcje takie, jak \*(L"Á\*(R", choć prawdę mówiąc, wątpię, by takie coś się mogło kiedykolwiek zdarzyć... .IP "\fBignore-inclusion\fR" 4 .IX Item "ignore-inclusion" Rozdzielona spacjami lista encji, które nie będą włączane. Tej opcji należy używać ostrożnie: może spowodować, że onsgmls (używany wewnętrznie przez ten moduł) doda elementy i wygeneruje niepoprawny dokument wyjściowy. .SH "STATUS MODUŁU" .IX Header "STATUS MODUŁU" Wynik jest doskonały. Tj. wygenerowane dokumenty są dokładnie takie same. Jednak wciąż jest parę problemów: .IP "\(bu" 2 The error output of onsgmls is redirected to /dev/null by default, which is clearly bad. I don't know how to avoid that. .Sp Problemem jest to, że musiałem \*(L"ochronić\*(R" warunkowe włączenia (rzeczy takie jak \f(CW\*(C`\*(C'\fR) w onsgmls. W przeciwnym razie onsgmls je zjada, a nie mam pojęcia jak je przywrócić w końcowym dokumencie. Aby temu zapobiec, przepisałem je jako {PO4A\-beg\-coś}> i \f(CW\*(C`{PO4A\-end}\*(C'\fR. .Sp The problem with this is that the \f(CW\*(C`{PO4A\-end}\*(C'\fR and such I add are invalid in the document (not in a

tag or so). .Sp If you want to view the onsgmls output, just add the following to your command line (or po4a configuration line): .Sp .Vb 1 \& \-o debug=onsgmls .Ve .IP "\(bu" 2 Działa to tylko z \s-1DTD\s0 DebianDoc i DocBook. Dodanie obsługi nowego \s-1DTD\s0 powinno być bardzo proste. Mechanizm jest taki sam dla każdego \s-1DTD,\s0 po prostu należy podać listę istniejących elementów i ich charakterystykę. .Sp Zgadzam się, to wymaga dokładniejszej dokumentacji, jednak jest to wciąż wersja beta, a ja nienawidzę dokumentowania rzeczy, które się mogą zmienić i zmienią. .IP "\(bu" 2 Ostrzeżenie: obsługa \s-1DTD\s0 jest całkiem eksperymentalna. Nie przeczytałem żadnego podręcznika, żeby znaleźć definicje każdego elementu. Dodałem definicje elementów, które działają dla kilku dokumentów znalezionych w sieci. Jeśli Twój dokument używa więcej elementów niż mój, nie będzie działał. Jak napisałem wyżej, poprawienie tego powinno być proste. .Sp Testowałem DocBook tylko na dokumencie \s-1SAG\s0 (System Administrator Guide), jednak jest on całkiem spory, więc powinien używać większości rzeczy specyficznych dla tego formatu. .Sp Dla DebianDoc, przetestowałem kilka podręczników z \s-1DDP,\s0 ale jeszcze nie wszystkie. .IP "\(bu" 2 W razie dołączania plików odnośniki do komunikatów wiadomości w plikach \s-1PO\s0 (tj. linie jak \f(CW\*(C`#: en/titletoc.sgml:9460\*(C'\fR) będą niepoprawne. .Sp Dzieje się tak dlatego, że wstępnie przetwarzam ten plik, aby ochronić warunkowe włączenia (rzeczy takie jak \f(CW\*(C`\*(C'\fR) oraz niektóre encja (jak &version) przed onsgmls ponieważ chcę je otrzymać bez zmian w wygenerowanym dokumencie. Dlatego, tworzę tymczasową kopię pliku wejściowego i na niej robię wszystkie zmiany przed przekazaniem go programowi onsgmls do przetwarzania. .Sp Żeby to działało, zamieniam encje proszące o włączenie pliku zawartością podanego pliku (dlatego mogę ochronić to, co trzeba, także w plikach włączanych). Ale do tej pory nic nie jest robione, aby poprawić później odnośniki (tj. nazwę pliku i numer linii). Nie jestem pewien, jak można by to najlepiej zrobić. .SH "AUTORZY" .IX Header "AUTORZY" Moduł jest zaadaptowaną wersją sgmlspl (postprocesora \s-1SGML\s0 parsera \s-1ONSGMLS\s0), który był: .PP .Vb 1 \& Copyright © 1995 David Megginson .Ve .PP Adaptacji do po4a dokonali: .PP .Vb 2 \& Denis Barbier \& Martin Quinson (mquinson#debian.org) .Ve .SH "TŁUMACZENIE" .IX Header "TŁUMACZENIE" .Vb 1 \& Robert Luberda .Ve .SH "PRAWA AUTORSKIE I LICENCJA" .IX Header "PRAWA AUTORSKIE I LICENCJA" .Vb 2 \& Copyright © 1995 David Megginson . \& Copyright © 2002\-2005 SPI, Inc. .Ve .PP Program jest wolnym oprogramowaniem; można go redystrybuować i/lub modyfikować zgodnie z warunkami licencji \s-1GPL\s0 (patrz plik \s-1COPYING\s0).