Następna strona Poprzednia strona Spis treści

3. Format tłumaczonych dokumentów: SGML

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.

Więcej informacji o tym pakiecie 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:

Część zasobów HOWTO/JTZ jest w formacie linuxdoc, część w docbook -- format jest zawsze zdeklarowany w pierwszej linii dokumentu. Zasada jest taka, że tłumaczymy dokument w takim formacie, w jakim jest oryginał. Więcej informacji nt. pracy z obywdoma formatami znajdziesz poniżej.

3.1 Docbook

Informacje o tłumaczu

Wg LDP dane nt. tłumacza w dokumentach o formacie DOCBOOK podawać należy w nagłówkach w sposób następujący:


 <othercredit role= 'translator'>
  <firstname>Imię</firstname>
  <surname>Nazwisko</surname>
  <affiliation>
   <address>
   <email>adres.email@tłumacza.pl</email>
   </address>
  </affiliation>
  <contrib>Wersja polska: 6.66, 22 września 2004</contrib>
 </othercredit>

Więcej nt. docbook

Więcej informacji nt. pisania w docbook i konwertowania tych dokumentów na inne formaty znajdziesz pod adresem http://www.tldp.org/LDP/LDP-Author-Guide/.

3.2 Linuxdoc

Informacje o tłumaczu

Dane nt. tłumacza w dokumentach o formacie LINUXDOC podawać należy w nagłówkach w sposób następujący:


<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

3.3 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.4 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 nazwa.pl 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ą:

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.


*** /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",
+      "pl" => "Spis treści", 
       "ro" => "Cuprins"
    }
  };

--- sgml-tools.org/dist/sgmltool/latex2e/mapping        2001-06-25 08:59:08.000000000 +0200
+++ sgml-tools/dist/sgmltool/latex2e/mapping    2003-11-13 02:15:23.000000000 +0100
@@ -8,9 +8,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"
@@ -23,9 +23,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"
@@ -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.


Następna strona Poprzednia strona Spis treści