Następna strona Poprzednia strona Spis treści

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ć.

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:

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:

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ą:

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:

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:

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:


Następna strona Poprzednia strona Spis treści