# Jak to zrobić (JTZ) czyli HOWTO po polsku

## Bartosz Maruszewski B.Maruszewski@jtz.org.pl
Michał Malarski malarz@it.pw.edu.pl
Piotr Pogorzelski piotr.pogorzelski@ippt.gov.pl

v 3.6, 11 Grudnia 2001

Informacje co to takiego JTZ, skąd się to wzięło, czemu to ma służyć, komu to jest potrzebne, a komu nie. Najnowsza wersja tego dokumentu znajduje się na naszym serwerze FTP ftp.jtz.org.pl oraz na Polskiej Stronie Tłumaczeń. Chciałbym zauważyć, że dokument ten dość często się zmienia, więc pilnuj proszę czy masz najnowszą wersję. Szczególnie zwracam uwagę na słowniczek.

## 1. Projekt JTZ

## 1.1 Co to jest JTZ ?

Wszystko zaczęło się od tego, że kilku osobom chciało się poświęcić troche czasu (bynajmniej nie wolnego) (choć jeden z nich sugerował, że podobno miał mieć jakieś ferie, czy coś w tym stylu, lecz przecież każdy rozsądny człowiek wie, że nie ma czegoś takiego jak ferie, urlop, wolna chwila. To są puste pojęcia wymyślone przez *owców, które mają jedynie namącić ludziom w głowach) i wspomóc World Linux Domination Project Polska (choć część z nich na pewno sobie nie zdawała sprawy z tego co robi) tłumacząc HOWTO na nasz rodzimy język.

Dosyć szybko zebrała się mała grupka ludzi, którzy rzuciwszy w kąt inne sprawy zabrali się do dyskusji co przetłumaczyć, jak to przetłumaczyć i co z tymi tłumaczeniami robić. Na szczęście nie byli w tym najlepsi (w tłumaczeniach też nie, jak sami zobaczycie), więc się zajęli innym sprawami (wesela, kino, spacer itp.).

Ku ogólnemu zdziwieniu okazało się, że ich wysiłek nie poszedł na marne i zaczęły pojawiać się pierwsze efekty ich działań (o nich za chwilę). Również ich dyskusje, zaowocowały pewnymi ustaleniami, które od tej pory stały się obowiązującym prawem.

Osobą koordynującą projekt jest Bartosz Maruszewski B.Maruszewski@jtz.org.pl

## 1.2 Ustalenia, które stały się obowiązującym prawem.

Te ogniste dyskusje, o których wcześniej pisałem (wymiana kilkunastu listów między trzema osobami) doprowadziły do przyjęcia następujących zasad :

- Postanowiliśmy, że każdy kto chce dołożyć swoją cegiełkę do tego projektu, zanim cokolwiek zacznie robić, powinien się z nami skontaktować i sprawdzić, czy to co chce robić nie zostało już przez kogoś wzięte. Wyślij list na adres B.Maruszewski@jtz.org.pl i zatytułuj go "`HOWTO-info`". Otrzymasz wtedy dokładną listę kto co robi i jakie dokumenty są wolne.
- Jeśli dokument jest "wolny", zanim się go zacznie tłumaczyć trzeba o tym poinformować osobę koordynującą rozdział dokumentów ( B.Maruszewski@jtz.org.pl).
- Upewnij się, że posiadasz najnowszą wersję dokumentu (po co się męczyć dwa razy?) i sprawdź czy autor nie ma jakichś zastrzeżeń co do tłumaczenia. Zawsze informuj autora, że chcesz przetłumaczyć jego dokument. Możesz zacząć tłumaczyć od razu po wysłaniu listu, nie czekając na odpowiedź, bo szansa, że autor się nie zgodzi jest raczej jak 1:1 000 000 :)
- Jeśli jest dostępna wersja oryginału w sgml, to tłumacz raczej ją.
- W tłumaczeniach wykorzystujemy opracowany wspólnie słownik, starając się zachować wspólne słownictwo (niestety trzeba zrezygnować z ulubionych zwrotów). Słownik taki otrzymasz wysyłając list na adres B.Maruszewski@jtz.org.pl i tytułując go "`HOWTO-slownik`". Zapoznaj się z nim przed rozpoczęciem tłumaczenia - uchroni cię to od niepotrzebnych, długotrwałych poprawek. Słownik ten znajduje się także w tym dokumencie.
- Każdy nagłówek pliku ma wyglądać tak samo. Skopiuj poniższy i zmień dane:

      <title>Tytuł
      <author>Autor: Imię Nazwisko
      <htmlurl url="mailto:autor@adres"
      name="autor@adres"><newline>
      v0.75, 1 Sierpnia 1996<newline> <-- wersja i data oryginału
      <bf>Wersja polska: Imię Nazwisko tłumacza
      <htmlurl url="mailto:tłumacz@adres" name="tłumacz@adres"></bf><newline>
      v1.3, 28 Marca 1997 <-- wersja i data tłumaczenia

  Zawsze umieszczaj tę sekcję. Z reguły autorzy także ją umieszczają. Dodaj tylko od siebie dwie poniższe informacje. Jeśli jej nie ma, to załóż ją z tymi informacjami.

      <abstract>
      Dokument ten został napisany w standardzie ISO-8859-2.
      Oryginał tego dokumentu znajduje się pod adresem...
      <it>jeśli autor nie podał, to podaj
      ftp.icm.edu.pl/pub/Linux/sunsite/docs/HOWTO/(mini)</it>
      </abstract>

  Zwróć szczególną uwagę na wszystkie `newline`.
- Wszystkie teksty piszemy w formacie SGML, z wykorzystaniem definicji dokumentu (DTD) nazwanej linuxdoc. Polskie litery kodujemy w jedynym aktualnym standardzie (dla nieuświadomionych dodam, że nazywa się on ISO-8859-2). Więcej informacji odnośnie standardu kodowania można znależć na Polskiej Stronie Ogonkowej
- Zajmujemy się tylko tłumaczeniem, choć bardzo byśmy chcieli nie możemy jednocześnie aktualizować tłumaczonych dokumentów. Aktualizować oznacza, że nie możemy weryfikować danych znajdujących się w oryginale. Jeśli oryginał zostanie zaktualizowany, to każdy tłumacz jest zobowiązany do uaktualnienia swojego tłumaczenia.
- Każdy dokument musi zawierać rozdział, w którym podane są wszelkie wprowadzone zmiany w stosunku do oryginału. Najlepiej na końcu zatytuowany Od tłumacza.
- Tłumaczymy dokumenty HOWTO. Jeśli w przyszłości ich nam zabraknie, być może weźmiemy się za coś innego.
- Nazw plików nie tłumaczymy, Installation-HOWTO pozostanie dalej Installation-HOWTO. Dodajemy jedynie rozszerzenie .pl.sgml.
- Jak już przetłumaczysz, sprawdzisz i stwierdzisz, że można tłumaczenie oddać do użytku, to przedtem sprawdź, czy dokument można przekonwertować na inne formaty.
- Po przetłumaczeniu i sprawdzeniu powyższego poinformuj osobę koordynującą, czyli Bartka Maruszewskiego B.Maruszewski@jtz.org.pl, że skończyłeś tłumaczyć dany dokument. TU BYŁY INFORMACJE O NAGRYWANIU NOWYCH DOKUMENTÓW NA FTP
- Jeśli pracujesz nad obszernym dokumentem i chcesz udostępnić jakiś zrobiony fragment, to też to jest możliwe. TU BYŁY INFORMACJE O NAGRYWANIU NOWYCH DOKUMENTÓW NA FTP
- Oprócz numeracji oryginału stosujemy także numerację tłumaczenia. Patrz kilka punktów wyżej na temat nagłówka pliku sgml. Numeracja ta jest niezależna od numeracji oryginału i zawsze zaczynamy od wersji 1.0
- Jeśli zmieniasz wersję tłumaczenia, to zastosuj się do poniższych reguł:
  - Jeśli są to duże poprawki/zmiany, np.: przeróbka kilku sekcji, likwidacja niektórych, dodanie nowych, to zmień wersję główną (1.0 -> 2.0)
  - Jeśli są to średnie poprawki/zmiany, np.: poprawka większej ilości błędów zmiana kilku adresów, to zmień wersję poboczną (1.0 -> 1.1)
  - Jeśli są to małe poprawki/zmiany, np.: usunięcie paru literówek, zmiana jednego/dwóch adresów, to zmień drugą cyfrę po przecinku (1.0 -> 1.01)
  Będzie to ułatwienie dla użytkowników, którzy będą wiedzieć czy opłaca się ściągać nową wersję czy nie.
- Jeśli jest to możliwe, to staraj się w miarę postępowania prac nad danym dokumentem podawać ich procentowe zaawansowanie. Odpowiedni formularz jest na WWW. TO OD DAWNA JEST POBOŻNYM ŻYCZENIEM.
- Jeśli w dokumencie znajduje się odwołanie do przetłumaczonego już HOWTO, to zrób odwołanie do tego tłumaczenia a nie oryginału. Tłumaczenia na serwerze WWW znajdują się w katalogach:
  - Html/ - HOWTO
  - Html/mini - mini-HOWTO
  Nazwa pliku to:
  - Nazwa-HOWTO.pl.html - HOWTO
  - Nazwa.pl.html - mini-HOWTO
- W związku z powyższym punktem bardzo proszę wszystkich tłumaczy, aby stosowali się do powyższego szablonu.
- Jeśli uaktualniasz swoje tłumaczenie, to bardzo proszę przyślij osobie koordynującej, czyli Bartkowi Maruszewskiego B.Maruszewski@jtz.org.pl wiadomość, że to zrobiłeś, żebym mógł umieścić nowszą wersję na WWW. Przecież nie może myśleć o wszystkim.
- Pytacie czasami czy możecie wstawiać własne tagi (<bf> <tt> itd.). Otóż żadnych zasad na ten temat nie wypracowaliśmy. Ja tłumaczę dokument tak jak jest i nie upiększam go, bo nie mam czasu i mi się nie chce. Wg. mnie jeśli chcesz sie pobawić - proszę bardzo.
- Zastanawiacie się także, czy można używać "mniej oficjalnych" słów. Otóż wg. mnie takie HOWTO jest pisane przez ludzi i dla ludzi i nie jest to żadne rządowe pismo super oficjalne itp. Już nie raz widziałem taki slang, że po kilkukrotnym przeczytaniu nie wiedziałem o co chodzi... Jednak należy pamiętać o pewnym umiarze... nie przesadzajmy :)
- Zdarzają sie czasami takie wyrażenia, które ciężko przetłumaczyć na polski i wychodzą z tego jakieś dziwolągi językowe albo w ogóle nie mają odpowiednika w j. polskim. W takim przypadku przetłumacz to, ale podaj dodatkowo w nawiasie wersję oryginalną wyrażenia. Stosuj to także jeśli tłumaczenie jest dwuznaczne.

## 1.3 Ludzie, czyli kto to robi

Chwilowo jest nas niewielu. Ci, o których wiemy (być może są tacy, którzy samotnie, w zapomnieniu zrobili już tę całą robotę, lecz my o nich nic nie wiemy) to:

- [mg] Maciek Grochal frytek@tichy.ch.uj.edu.pl
- [bm] Bartosz Maruszewski B.Maruszewski@jtz.org.pl
- [po] Pawko Olszewski alder@amg.com.pl
- [pp] Piotr Pogorzelski piotr.pogorzelski@ippt.gov.pl
- [pt] Piotr Tęczyński pteczyn@amu.edu.pl
- [zb] Ziemek Borowski ziembor@digilab.com.pl
- [bb] Benedict P. Barszcz poseidon@mail.ziplink.net
- [jc] Jakub Chmielewski yacoob@manager.ae.wroc.pl
- [jb] Janusz Batko janus@krakow.linux.org.pl
- [ps] Paweł Świerszcz vampire@aule.mdkna102.krakow.pl
- [jp] Jacek Pliszka Jacek.Pliszka@fuw.edu.pl
- [gsn] Gwidon S. Naskrent naskrent@hoth.amu.edu.pl
- [zb] Zbigniew von Borgosz borg@kki.net.pl
- [bp] Bartek Papierski bartekp@dom.vr.pl
- [pd] Piotr DUDA s0074@pjwstk.waw.pl
- [mm] Michał Malarski malarz@it.pw.edu.pl
- [gn] Grzegorz Nalepa nalepa@ibm.uci.agh.edu.pl

Jeśli chcesz do nas dołączyć zapisz się na naszą listę, lecz pamiętaj, że jest ona przeznaczona, dla osób pracujących nad tłumaczeniami, nie służy do przyglądania się, jak postępują prace. Adres listy to jtz@ippt.gov.pl lub jtz@jtz.org.pl. Aby się na nią zapisać wyślij na adres majordomo@ippt.gov.pl list zawierający

> `

>     subscribe jtz Imię Nazwisko

> `

Paweł Więcek coven@pwr.wroc.pl opiekuje się pakietem naszych tłumaczeń dostarczanym dla Debiana. Pakiet ten jest dostępny jako "unstable doc-linux-pl" pod adresem ftp://ftp.ists.pwr.wroc.pl/coven/debian lub na dowolnej kopii serwera GNU/Linux Debian.

Michał Malarski malarz@it.pw.edu.pl stworzył pakiet tłumaczeń przeznaczonych dla RedHata. Pakiet ten dostępny jest pod adresem ftp://srl.it.pw.edu.pl/pub/JTZ/RedHat.

## 1.4 Pierwsze rezultaty

Postanowiliśmy, że przetłumaczone dokumenty będą udostępniane szerszemu gronu dopiero, kiedy będą się do tego nadawały ;-). To znaczy, że przetłumaczony dokument musi wpierw troche poczekać, zostać ponownie sprawdzony przez autora i dopiero potem może pokazać się szerszej publiczności.

Chcemy jednak, abyście wiedzieli czego możecie oczekiwać w najbliższym czasie i jaki jest stopień zaawansowania prac. Czekamy również na wasze reakcje i oczekiwania. Wasze głosy mogą wpłynąć na kolejność w jakiej będą tłumaczone te dokumenty. Zajrzyj na Polską Stronę Tłumaczeń.

Jeśli chcesz wiedzieć nad czym w tej chwili pracujemy, wyślij na adres B.Maruszewski@jtz.org.pl list, który w polu Subject: zawiera napis `HOWTO-info`. Otrzymasz mniej więcej taką odpowiedz:

    From: Bartosz Maruszewski <B.Maruszewski@jtz.org.pl>
    Subject: Re: HOWTO-info
    Date: Tue, 25 Feb 1997 16:47:27 +0100 (MET)
    Lines: 38

    ========== KTO ========== ===== CO ROBI ===== ===== CO ZROBIL =====
    Ja                                SMB              BootPrompt
                                                          Kernel
                                                        m. Locales
                                                        m. DOS2Linux
    --------------------------------------------------------------------
    Piotr P.                         META              Instalation
                                    Serial              ISP-HookUp
                                    NET2               LargeDisk
                                    Ethernet
    --------------------------------------------------------------------
    Piotr T.                        XFree86,
                                      WWW
                                    Java-CGI
    --------------------------------------------------------------------
    Pawko O.                        Sound
                                   Modules

    ========== SPIS ==========
    Howtos:
    BootPrompt(*), BootDisk(*), Instalation(*), Kernel(*), Modules(*),
    Printing(-Usage), SCSI, SMB(*), Serial(*), Sound(*), UMSDOS, ISP-HookUp(*),
    META(*), NET2(*), Ethernet(*)

    Mini-Howtos:
    LILO, LargeDisk(*), Colour-ls, Consoles(-Many), DOS2LINUX(*), Getty-ps,
    KeySetup, Keystroke, Locales(*), Quota, Swap-Space, Upgrade, X*(*), Diald,

    (*) - oznacza zrobione, badz w trakcie tlumaczenia
    m. - mini HOWTO

## 1.5 Przetłumaczone dokumenty

Aktualne informacje znajdziesz na Polskiej Stronie Tłumaczeń.

Wszystkie przetłumaczone dokumenty (w różnych formatach) można znaleźć na naszym serwerze FTP ftp://ftp.jtz.org.pl/

## 2. Słownik

Jeśli znajdziesz jakieś nowe słowo/wyrażenie, które nadaje się do słownika, albo znajdziesz lepsze określene dla któregoś słowa/wyrażenia już będącego w słowniku, to wyślij je do Bartka Maruszewskiego B.Maruszewski@jtz.org.pl.

    **
    v3.4.6
    **

    acknowledgement - podziękowania (jako tytuł sekcji), wyrazy uznania
    actual - rzeczywisty, ostateczny, faktyczny, bieżący
    adapter - sterownik
    affect - dotyczyć, mieć negatywny wpływ na
    aggregate works - prace zebrane
    arrangement - ustawienie
    aspect ratio - współczynik kształtu/obrazu
    based - oparty na
    bit bucket - kosz na bity
    boot - załadować, wystartować system,
    boot diskette - dyskietka startowa
    boot prompt - zachęta startowa
    broadcasting - rozgłaszanie, nadawanie
    can access - ma dostęp
    carry out - wypełnij, wykonać, przeprowadzić
    chip - układ scalony
    command - polecenie
    command output - wynik/rezultat polecenia
    (to) crash - wywalić się, załamanie, pad/paść
    credits - wyrazy uznania
    debug - odpluskwiać
    derivative works - prace pochodne
    disable - wyłączyć
    disclaimer - zastrzeżenie
    driver - sterownik
    to edit - (z)modyfikowac
    entry - pozycja
    EPROM burner - programator eprom-ów
    expire - wygasnąć
    feed - zasilać, zasilanie, dostarczać
    figure out - stwierdzić
    filesystem - system plików
    flexibility - elastyczność
    for details - więcej na temat szczegółów dotyczących
    hack - przerobić (odnośnie jądra Linuksa)
    hardware - sprzęt
    header/include files - pliki nagłówkowe
    interface - interfejs
    introduction - wprowadzenie
    issue a command - wykonać
    xxx issue - sprawa dotycząca xxx
    jumper - zworka, przełącznik
    kill - usun (o procesie)
    learn about - nauczyć się, dowiedzieć się o
    line - wiersz
    maintain - opiekować się
    maintained - prowadzony/pielęgnowany/utrzymywany przez
    major - liczba główna
    man - podręcznik (man)
    map - odwzorowywać
    masquerading - maskowanie
    memory window - ramka pamięci
    minor - liczba poboczna
    mirror - kopia
    normal - zwykly
    note - zauważ, uwaga, zapamiętaj
    obey - podlegać, być posłusznym
    override -- zmienić, nadpisać
    pipe -- potok
    poll - sprawdzać, próbkować, monitorować
    probe - przeszukiwać, sprawdzać, wykrywać, dokonywać detekcji
    processed - interpretowane, przetwarzane
    prompt - zachęta
    put - umieścić
    to query - pytać, sprawdzać
    reboot - przeładowanie
    reflect - odzwierciedlać
    release - wersja, wydanie
    root - administrator
    root filesystem - główny system plików
    section - rozdział
    shadow - przesłaniać
    share - współdzielić
    shell - powłoka, interpreter
    shell prompt - zachęta powłoki, interpretera
    software - oprogramowanie
    spool directory - katalog zadań, katalog buforowania
    stream -- strumień
    support - obsługiwać
    symbolic link - dołączenie/dowiązanie/wskazanie symboliczne
    system call - funkcja systemowa
    terms of use - warunki stosowania/używania/korzystania
    third-party books - książki wydawnictw/autorów, nie związanych z
                        firmą produkującą opisywaną rzecz
                        albo
                        książki osób trzecich
    total - całkowity
    tune - ustawić, dostroić
    unlike - w przeciwieństwie do, niepodobny do
    upgrade - odnawianie, odswieżanie, uaktualnianie
    usage - stosowanie
    using this technique - za pomocą tego sposobu, tym sposobem
    utility, tool - narzędzie
    work-around - obejści
    X - nazwa systemu graficznych okienek uniksa to:
                             X
                      X Window System
                        X Version 11
                X Window System, Version 11
                            X11
     ***** Żadnej innej _SZCZEGÓLNIE_   *XWindows*   nie przyjmuję *****

    skróty od zwrotów:
    - według - wg
    - wyżej wymienione - ww.

    ==========================================================

    Wyrazy których nie tłumaczymy:
    firewall, bridge, host, proxy, log, stdin, stdout, locale, *roff,
    timeout, routing, router

    mieszczą się tutaj także wszelkie polecenia systemowe i nazwy programów
    X, emacs, *TeX, *script.
    ===========================================================

    Jak odmieniać wyrazy nietłumaczone, zaczerpnięte z j. angielskiego oraz
    wszelkie skróty?
    Wyrazy zaczerpnięte z ang. to takie jak: Linux, Unix, fax...

    ***************
         UWAGA
    ***************
    Odmiana słowa Linux:
    (podaję za słownikiem języka polskiego)
    ten Linux
    tego Linuksa
    temu Linuksowi
    tego Linuksa
    z Linuksem
    o Linuksie
    O! Linuksie. :)

    Żadnej innej nie przyjmuję. Jeśli znajdę w jakimś tłumaczeniu:
    Linuxie, Linux-ie itp, to NIE AKCEPTUJE go.

    Jeśli wyraz kończy się na spółgłoskę, to piszemy
    końcówkę polską wg rodzaju jaki dany wyraz przyjmuje w j. polskim
    (NIE STOSUJEMY myslnikow do oddzielenia polskiej koncowki od skrotu):
    np: ten firewall -- tego firewalla
    ten RAM -- tego RAMu

    W dopełniaczu (kogo? czego?) skrótu kończącego się na spółgłoskę zawsze
    używamy końcówki 'u': DOSu, BIOSu itd.

    Jeśli wyraz kończy się na samogłoskę, to dodajemy apostrof i piszemy
    końcówkę polską wg rodzaju jaki dany wyraz przyjmuje w j. polskim:
    np: ten bridge - tego bridge'a

    Jeśli wyraz kończy się na tzw. nieme "e", to lepiej unikać jego
    odmiany, np: edytor joe -- w edytorze joe, edytora joe. A nie edytorze
    joe'u czy edytora joe'a ...

## 3. Trochę danych technicznych dla tłumaczy.

Wcześniej już zostało wspomniane, że piszemy w formacie SGML. Format ten bardzo przypomina HTML więc jeśli znasz ten ostatni, to nie powinien on ci nastręczać większych trudności. Do konwersji z formatu SGML na inne formaty służy pakiet sgml-tools.

## 3.1 Krótki minikurs SGML-a.

Wielu z was chce się przyłączyć, ale pisze do mnie, że nie zna SGMLa. No i piszę do każdego litanię wszystkich zasad itp. Żeby tego nie robić postanowiłem zamieścić kilka porad jak z niego korzystać.

- Przede wszystkim chciałbym zauważyć, że SGML jest podobny do HTMLa jeśli chodzi o składnię - można właściwie powiedzieć, że jest taka sama. Np.: w HTMLu piszesz <I> a w SGMLu <it>, w HTMLu <B> - w SGMLu <bf> (wielkość liter oczywiście nie ma znaczenia).
- W SGMLu, tak samo jak w HTMLu, są pewne znaczki o znaczeniu specjalnym. Są to np.: &, <, >, ~ itp. Żeby je zapisać należy użyć specjalnej notacji. I tak odpowiednio są to: &amp;, &lt;, &gt;, &tilde;. Zobacz punkt 3.2 w podręczniku w katalogu `/usr/doc/sgmltools-xxx`.
- Najprostszym sposobem na zorientowanie się jak powinien wyglądać plik źródłowy w SGMLu jest zajrzenie, do któregoś z już napisanych dokumentów. Ogólnie metoda jest prosta:
  - bierzesz nagłówek podany w drugim punkcie tego dokumentu i kopiujesz go do swojego tłumaczenia.
  - dalej wszystko tak samo jak w innych dokumentach SGML.
- Jeszcze jedna ważna uwaga, która przysparza trochę kłopotów. Jeśli chcesz między początkowym tagiem a końcowym użyć znak `/`<, to parser potraktuje, to jako koniec tagu. Należy wtedy stosować tagi w pełnej postaci, czyli np. `<bf>tekst</bf>`. Piszę to, bo można też stosować skrótową formę: `<bf/tekst/`.

To naprawdę nie jest trudne.

## 3.2 sgml-tools

Więcej informacji o pakiecie sgml-tools można znaleźć na stronie projektu SGMLTools

Pakiet sgml-tools wywodzi się od dawnego pakietu linuxdoc-sgml. Zmianę nazwy pakietu argumentuje się tym, że poprzednia nazwa wiązała pakiet z Linuxem, co nie było zgodne z rzeczywistością. Można go było używać również pod kontrolą innych systemów operacyjnych.

Aktualnie projekt ten jest chwilowo zawieszony, więc z wszelkimi problemami musimy rodzić sobie sami. Aktualne wersje tego pakietu są dwie:

- 1.0.9 - ostatnia wersja pakietu wspierająca DTD linuxdoc.
- 2.0.2 - najnowsza wersja pakietu. Od wersji 2.0 nie obsługiwany jest DTD linuxdoc tylko DTD docbook.

Ponieważ jesteśmy zainteresowani DTD linuxdoc to używamy wersji 1.0.9. Co prawda nie każę używać ci dokładnie tej wersji, ale nie jestem w stanie ci powiedzieć, czy wersja, którą używasz można łatwo przekonać do obsługi polskich tłumaczeń.

## 3.3 Teraz trochę o konwersji.

Jak już wspomniałem do konwersji z formatu SGML służy pakiet programów sgml-tools. Programy z tego pakietu, których będziesz używał to najprawdopodobniej:

- sgmlcheck - sprawdzanie poprawności dokumentu SGML
- sgml2html - konwersja dokumentu SGML na format HTML
- sgml2txt - konwersja dokumentu SGML na format tekstowy
- sgml2latex - konwersja dokumentu na formaty LaTeX / DVI / PostScript

Aby wygenerować poprawne JTZ-ty musisz prawdopodobnie zmodyfikować kilka plików z pakietu sgml-tools. Informacje jak to zrobić znajdzesz poźniej.

Do wygenerowania pięciu głównych formatów (poza SGML oczywiście) należy wykonać kolejno polecenia:

    sgml2html -s 0 -l pl nazwa.pl.sgml
    sgml2txt -f -c latin nazwa.pl.sgml
    sgml2latex -o ps  -p a4 nazwa.pl.sgml
    sgml2latex -o dvi -p a4 nazwa.pl.sgml
    sgml2latex -o tex -p a4 nazwa.pl.sgml

W powyższym przykładzie zmienna systemowa PLIK oznacza nazwę dokumentu poddawanego konwersji. Jeżeli często przeprowadzasz konwersję do wszystkich formatów polecam napisanie sobie podobnego skryptu.

    #!/bin/sh

    sgml2html -s 0 $1.pl.sgml
    sgml2txt -f -l pl -c latin $1.pl.sgml
    sgml2latex -o ps  -p a4 $1.pl.sgml
    sgml2latex -o dvi -p a4 $1.pl.sgml
    sgml2latex -o tex -p a4 $1.pl.sgml

Aby dokonać konwersji należy wywołać powyższy skrypt z parametrem bedącym nazwą dokumentu SGML (z pominięciem rozszerzeń .pl.sgml)

Oczywiście możesz również eksperymentować z innymi opcjami, ale ten zestaw opcji wydaje się być najwłaściwszy. Opcje te oznaczają:

- -c - zestaw znaków użytych w tekście - parametr istotny jedynie podczas konwersji do formatu tekstowego
- -s - liczba poziomów podziału na oddzielne pliki dokumentu w formacie HTML
- -o - format wyjściowy programu sgml2latex
- -p - format papieru - istotny dla sgml2latex
- -l - język dokumentu - istotne dla sgml2html w przypadku podziału dokumentu na pliki

## 3.4 Polonizacja pakietu sgml-tools

Instrukcja ta dotyczy wersji 1.0.9-2 pakietu sgml-tools. Informacja ta nie oznacza, że w innych wersjach należy postąpić inaczej. Sposób postępowania na pewno nie zmienił się od wersji 1.0.7. Sposób postępowania dla starszych wersji pakietu sgml-tools czy też dla pakietu linuxdoc-sgml (poprzednika pakietu sgml-tools) opisany jest w sekcji historycznej.

Chcemy uzyskiwać poprawne dokumenty w formatach:

- tekstowym (txt) - nie ma żadnych problemów
- html-owym (html) - gdy tworzymy wieolopoziomowy dokument HOWTO, chcemy aby odnośniki typu Poprzedni, Następny były odnośnikami w języku polskim
- LaTeX'owym (tex) - mamy problem z konwersją polskich liter oraz napisem `Spis Treści`
- PostScriptowym (ps, dvi - jeżeli dla dokumentu LaTeX jest wszystko w porządku to tutaj też.

Aby poradzić sobie z powyższymi problemami musimy zmodyfikować dwa pliki.

Pierwszy z nich odpowiada za odnośniki w wersjach HTML dokumentów. Jest to plik

    /usr/lib/sgml-tools/SGMLTools/Lang.pm

W pliku tym musimy dodać definicję języka polskiego, oraz odpowiednie napisy dla tej definicji.

Drugi z plików jest plikiem odpowiadającym za znaczniki w generowanym pliku w formacie LaTeX. Plikiem tym jest

    /usr/lib/sgml-tools/dist/linuxdoc/latex2e/mapping

w pliku tym modyfikujemy informację o nagłówku dokumentu LaTeX tworzonego podczas konwersji. Musimy zdefiniować użycie znaków wg. standardu Latin2 oraz języka polskiego.

Aby było łatwiej dokonać te zmiany przygotowałem odpowiedni patch do automatycznego dokonania potrzebnych zmian. Patch ten jest dostępny w sieci ftp://ftp.jtz.org.pl/tools.

Ponieważ niektórzy mogą mieć problem ze ściągnięciem ww. pliku jego zawartość zamieszczam też poniżej:

    *** /usr/lib/sgml-tools/SGMLTools/org/Lang.pm   Mon Mar 22 05:29:00 1999
    --- /usr/lib/sgml-tools/SGMLTools/Lang.pm       Tue May 18 22:44:50 1999
    ***************
    *** 60,65 ****
    --- 60,66 ----
        pt portuges portuguese
        ca catalŕ catalan
        it italiano italian
    +   pl polski polish
        ro română romanian
      );

    ***************
    *** 164,169 ****
    --- 165,171 ----
           "pt" => "Página anterior",
           "ca" => "Pŕgina anterior",
           "it" => "Indietro",
    +      "pl" => "Poprzednia",
           "ro" => "Înapoi"
        },
        "Next" => {
    ***************
    *** 177,182 ****
    --- 179,185 ----
           "pt" => "Página seguinte",
           "ca" => "Pŕgina següent",
           "it" => "Avanti",
    +      "pl" => "Następna",
           "ro" => "Înainte"
        },
        "Contents" => {
    ***************
    *** 190,195 ****
    --- 193,199 ----
           "pt" => "Índice",
           "ca" => "Índex",
           "it" => "Indice",
    +      "pl" => "Spis treści",
           "ro" => "Cuprins"
        },
        "Table of Contents" => {
    ***************
    *** 203,208 ****
    --- 207,213 ----
           "pt" => "Índice geral",
           "ca" => "Índex general",
           "it" => "Indice Generale",
    epackage\[latin2\]{inputenc}\n"
                            "\\usepackage{t1enc}\n"
    -                       "\\usepackage{babel}\n"
    +                       "\\usepackage\[polish\]{babel}\n"
                            "\\usepackage{epsfig}\n"
                            "\\usepackage{[OPTS]}\n"
                            "\\def\\addbibtoc{\n"
    @@ -39,9 +39,9 @@
                            "\\usepackage{linuxdoc-sgml}\n"
                            "\\usepackage{qwertz}\n"
                            "\\usepackage{url}\n"
    -                       "\\usepackage\[latin1\]{inputenc}\n"
    +                       "\\usepackage\[latin2\]{inputenc}\n"
                            "\\usepackage{t1enc}\n"
    -                       "\\usepackage{babel}\n"
    +                       "\\usepackage\[polish\]{babel}\n"
                            "\\usepackage{epsfig}\n"
                            "\\usepackage{[OPTS]}\n"
                            "\\def\\addbibtoc{\n"
    @@ -56,9 +56,9 @@
                            "\\usepackage{linuxdoc-sgml}\n"
                            "\\usepackage{qwertz}\n"
                            "\\usepackage{url}\n"
    -                       "\\usepackage\[latin1\]{inputenc}\n"
    +                       "\\usepackage\[latin2\]{inputenc}\n"
                            "\\usepackage{t1enc}\n"
    -                       "\\usepackage{babel}\n"
    +                       "\\usepackage\[polish\]{babel}\n"
                            "\\usepackage{epsfig}\n"
                            "\\usepackage{[OPTS]}\n"
                            "\\def\\title#1{\n"

Aby wykorzystać ten plik należy wykonać komendę:

    patch -p0 < sgml-tools.patch

To jest wszystko co musisz zrobić. Powtórzę jeszcze raz: jedyne operacje jakie musisz wykonać, aby spolonizować sgml-tools 1.09 to:

- Wejść w posiadanie pliku sgml-tools.patch.
- Wykonać polecenie patch z odpowiednimi parametrami.
- sgml-ować, konwertować, tłumaczyć, ... ;-)

Jeżeli ktoś jest zainteresowany co dokładnie zostało i dlaczego zmienione to zapraszam do sekcji Technikalia - historia.

## 3.5 Co mam zrobić jeśli chcę poprawić dokument.

Po pierwsze wszelkie poprawki trzeba nanosić w formacie SGML.

Jeśli znalazłeś literówki, to po prostu popraw je i wyślij poprawioną wersję do tłumacza. Upewnij się przedtem czy masz najnowszą wersję, bo może błędy, które poprawiasz są już poprawione w nowszej wersji.

Jeśli chcesz ingerować w treść dokumentu, to postępuj wg. poniższej instrukcji:

- zachowaj kopię tłumaczenia
- nanieś poprawki, które uważasz za stosowne
- programem diff utwórz plik zmian wydając polecenie:

      diff -Nu stara-wersja nowa-wersja > zmiany

- tak utworzony plik `zmiany` wyślij do tłumacza

## 4. Technikalia - historia

Ponieważ niektórzy korzystają ze starszych wersji oprogramowania i z różnych powodów nie chcą ich zmienić zdecydowaliśmy sie na pozostawienie starych sposobów zmuszenia do współpracy tamtego oprogramowania.

## 4.1 Jak korzystać z trybu psgml pod Xemacsem?

UWAGA!
Wraz z aktualnymi wersjami emacs'a dostarczany jest plik sgml-mode.elc odpowiedzialny za tryb SGML pod emacsem.

Całkiem prosto:

- zainstalować pakiet linuxdoc-sgml
- dopisać do pliku .bashrc wiersze

  > `

  >     LINUXDOCLIB=/usr/lib/linuxdoc-sgml
  >     export LINUXDOCLIB
  >     SGML_PATH=$LINUXDOCLIB/dtd/%N.dtd:$LINUXDOCLIB/dtd/%P.dtd:$LINUXDOCLIB/dist/linuxdoc/html/%N
  >     export SGML_PATH

  > `

- uruchomić `xemacs`a i pisać!

## 4.2 konwersja txt i html a sprawa polska

UWAGA!
Konwersja na formaty TXT oraz HTML dla użytkowników pakietu linuxdoc-sgml.

Do konwersji pliku źródłowego SGMLa na HTML i TXT służą odpowiednio programy sgml2html i sgml2txt. Wszystko co musisz pamiętać, to użycie odpowiedniej opcji dla sgml2txt, żeby zostawił polskie znaki w spokoju. Opcja ta, to `-l`. Podczas konwersji występuje z reguły błąd Couldn't find font 'C' czy jakoś tak - otóż nie ma się czym przejmować. Poprawny dokument tekstowy zostanie wygenerowany.

Co do konwersji na HTML, to tutaj problemu z polskimi literami nie ma, ale trzeba pamiętać, aby użyć opcji -L polish, żeby odwołania Next, Table of Contents i Previous zamienić na polskie odpowiedniki. Przed konwersją załóż plik `/usr/lib/linuxdoc-sgml/rep/html/polish` i wpisz w nim:

    PrevPage: Poprzednia
    NextPage: Następna
    TOC: Spis&nbsp;Treści

## 4.3 Konwersja SGML -> LaTeX a sprawa polska

UWAGA!
O ile dobrze pamiętam opis ten dotyczy ostatniej wersji pakietu linuxdoc-sgml.

W poniższym tekście opisuję moje udane próby konwersji dokumentu z polskimi znakami diaktrycznymi zapisanego w formacie SGML na format LaTeX oraz DVI (Device Independent) i PS (PostScript).

### LaTeX i LaTeX2e (epsilon)

Bezproblemowo znaki różnych alfabetów możemy używać tylko w nowym formacie LaTeXa (tzw. LaTeXu 2e), standardowo pozwalającym na pisanie z ogonkami. Aby można było używać jawnie polskich liter w LaTeXu w nagłówku dokumentu w formacie LaTeX wygenerowanego przez program `sgml2latex` muszą wystąpić następujące linie:

            \usepackage{t1enc}
            \usepackage[latin2]{inputenc}
            \usepackage[polish]{babel}

Najważniejsza jest pierwsza z nich:

            \usepackage{t1enc}

Linia ta umożliwia w ogóle pisanie z ogonkami.

Kolejna linia:

            \usepackage[latin2]{inputenc}

umożliwia zapisanie polskich liter w standardzie ISO Latin 2 (ISO 8859-2) a nie jakimiś przedziwnymi zaklęciami magicznymi LaTeXa.

Trzecia z nich, a mianowicie:

            \usepackage[polish]{babel}

daje nam jedynie dodakowy bajer: słowa w języku polskim w razie potrzeby zostaną poprawnie podzielone (zgodnie z regułami języka polskiego oczywiście).

Niestety program `sgml2latex`, generujący za każdym razem najpierw plik w formacie LaTeX, a dopiero później korzystając z tego pliku generuje pliki w formatach DVI i/lub PS, nie generuje odpowiednich linii w tym pliku.

### Co nam generuje sgml2latex ?

Program `sgml2latex` umożliwia wygenerowanie pliku w formacie LaTeX lub LaTeX2e (z opcją -2e). Wszystko byłoby fajnie gdyby ten plik był poprawny dla nas (czyli zawierał linie wymienione powyżej). Niesety tak nie jest. Żeby to poprawić wystarczy jedynie trochę zmodyfikować plik

    /usr/lib/linuxdoc-sgml/rep/latex2e/mapping

w którym jest opisany sposób konwersji pliku SGML do formatu LaTeX2e. W pliku tym we fragmencie dotyczącym konwersji tagu `<article>` zamiast linii

            "\\usepackage\[latin1\]{inputenc}\n"

należy wstawić trzy następujące linie:

            "\\usepackage{t1enc}\n"
            "\\usepackage\[latin2\]{inputenc}\n"
            "\\usepackage\[polish\]{babel}\n"

Pierwsze dwie z tych linii muszą znaleźć się koniecznie, natomiast trzecia wedle upodobania. Muszę jednak dodać, że w wypadku dodania trzeciej z tych linii konieczne jest odpowiednie skonfigurowanie programu dvips (przynajmniej ja to zrobiłem, w każdym razie korzystając z programu `texconfig` dodałem polski sposób dzielenia wyrazów.

Jeżeli korzystając z formatu SGML tworzymy także inne dokumenty można w taki sam sposób dokonać zmian w sekcjach dotyczących konwersji tagów `<report>`, `<book>` oraz `<notes>`. Te zmiany nie są jednak konieczne gdy pracujemy wyłącznie z dokumentami HOWTO.

### Program sgml2latex i pliki DVI oraz PS

Już mamy poprawne generowanie plików w formacie LaTeX2e. Teraz jeszcze musimy posiadać LaTeXa w wersji 2e. Jeżeli mamy zainstalowany pakiet tetex (chyba jeden z popularniejszych w dystrybucjach Linuxa) to mamy odpowiedni program. Ponieważ program `sgml2latex` oczekuje, że program LaTeX2e wywołujemy przez `latex2e` to musimy mu taki sposób wywołania tego programu zapewnić. Najprościej jest w katalogu `/usr/bin` utworzyć skrót o nazwie `latex2e` do programu `latex`, czyli:

    cd /usr/bin
    ln -s latex latex2e

### Konwersja właściwa, czyli jak uzyskać DVI lub PS

Po dokonaniu wyżej wymienionych modyfikacji żadne zmiany w dokumentzch SGML nie są już konieczne. Wystarczą jedynie odpowiednie opcje programu `sgml2latex`. Należy pamiętać o użyciu opcji `-2e` aby program generował pliki w formacie LaTeX2e a nie w starszym (LaTeX).

Aby uzyskać wersję w formacie DVI używamy komendy:

    sgml2latex -2e -a -d nasz_plik.sgml

Analogicznie możemy wygenerować pliki w formacie PS:

    sgml2latex -2e -a -p nasz_plik.sgml

### Uwagi

Rozwiązanie jest w paru miejscach trochę toporne, ale skuteczne. Osobiście były to moje pierwsze kroki w LaTeXu, więc opis do czynności, które należy wykonać może być trochę nieodpowiedni. Wszelkie informacje o LaTeXu jakie potrzebowałem do uzyskania satysfakcjonujących mnie wyników uzyskałem z Polskiej Strony Ogonkowej.

## 5. Od autorów

Wszelkie uwagi do treści tego dokument będą oczywiście mile widziane. Gwoli wyjaśnienia dodamy tylko, że osobą koordynująca całością prac jest tylko i wyłącznie Bartosz Maruszewski B.Maruszewski@jtz.org.pl. Wszelkie uwagi dotyczące sekcji Projekt JTZ oraz Słownik należy kierować więc wyłącznie do niego.

Natomiast jeżeli będziesz miał jakieś problemy od strony technicznej z konwersją dokumentów z formatu SGML, czy też uwagi dotyczące sekcji Technikalia zgłoś się do Michała Malarskiego malarz@it.pw.edu.pl