Polskie litery i wielojęzyczność - informacje techniczne


[ In English... ] [ Po Polsku... ]


Stara technologia (styczeń '96)

W starej technologii poszczególne wersje językowe są odróżniane pojedyńczą literą na początku rozszerzenia, jak pokazano to w poniższej tabeli:

Wersja dokumentu Rozszerzenie (HTML) Rozszerzenie (CGI)
Jedyna .html (brak)
Polska - bez polskich znaków .html (brak)
Polska - ISO 8859-2 .ihtml .i
Polska - Win CP 1250 .whtml .w
Angielska .ehtml .e
Uwaga: Odradza się stosowanie wersji Win CP 1250.

Jak widać domyślną wersją jest wersja bez polskich znaków, co w tej chwili nie jest najlepszym rozwiązaniem.

Umożliwia to prostą implementację na większości serwerów HTTP, np. dla serwera Apache-Httpd należy umieścić w pliku konfiguracyjnym srm.conf (albo w pliku .htaccess w katalogu w którym znajdują się dokumenty) następujące linijki:

AddType text/html .ihtml
AddType text/html .whtml
AddType text/html .ehtml

Albo też w pliku konfiguracyjnym mime.types zmienić zawartość linijki definiującej typ text/html tak, aby miała postać np.

text/html       html htm ihtml whtml ehtml

Dla serwera Cern-Httpd należy w pliku konfiguracyjnym (httpd.conf) umieścić następujące linijki:

AddType .ihtml text/html 8bit
AddType .whtml text/html 8bit
AddType .ehtml text/html 8bit

Do automatycznego tworzenia na podstawie dokumentów z polskimi literami w standardzie ISO 8859-2 wersji bez polskich znaków i ewentualnie CP 1250 z zachowaniem wymogów tej technologii można użyć programu HtmlConv (patrz niżej).


Nowa technologia (sierpień '96)

W nowej technologii wykorzystuje się możliwości serwera Apache-Httpd, a mianowicie technologię MultiViews. Dzięki temu wykorzystywane są preferencje językowe użytkownika.

Generuje to następujące rozszerzenia dla wersji językowych dokumentów:

Wersja dokumentu Rozszerzenie (HTML bez SSI) Rozszerzenie (HTML z SSI) Rozszerzenie (CGI użytkownika)
Jedyna .html .shtml .cgi
Polska - bez polskich znaków .html.pn .shtml.pn .cgi.pn
Polska - ISO 8859-2 .html.po .shtml.po .cgi.po
Polska - Win CP 1250 .html.pw .shtml.pw .cgi.pw
Angielska .html.en .shtml.en .cgi.en
Uwaga: Odradza się stosowanie wersji Win CP 1250.

Dla skryptów CGI nie rozpoznawanych po rozszerzeniu (tylko po katalogu) należy używać rozszerzeń takich jak w starej technologii, względnie takich jak dla CGI użytkownika (rozpoznawanych po rozszerzeniu).

Aby móc skorzystać z tej technologii należy w każdym katalogu umieścić plik .htaccess o np. następującej zawartości (dyrektywy te mogą się też znaleźć w plikach konfiguracyjnych serwera - access.conf i srm.conf):

Options All MultiViews

AddLanguage         pl .po
AddLanguage         pn .pn
AddLanguage         pw .pw

LanguagePriority    pl pn pw en

DirectoryIndex index.shtml index.html

Dyrektywa deklarująca rozszerzenie .en znajduje się domyślnie w pliku srm.conf.

Powyższy plik .htaccess włącza MultiViews, aby można było korzystać z tej technologii, definiuje rozszerzenia językowe używane przez nią, ustala domyślne preferencje językowe i pozwala używać plików index z Server-Side Includes.

Do automatycznego tworzenia na podstawie dokumentów z polskimi literami w standardzie ISO 8859-2 wersji bez polskich znaków i ewentualnie CP 1250 z zachowaniem wymogów tej technologii można użyć programu HtmlConv (patrz niżej).


Przygotowywanie dokumentów pod DOS-em

Z własnego doświadczenia wiem, że przygotowywanie dokumentów HTML-owych pod DOS-em jest dość popularne. Jednakże napotykamy tam na drobny problem - DOS-owy limit długości nazw plików, a dokładniej limit długości rozszerzenia do trzech znaków.

Sugeruję używanie następujących rozszerzeń zastępczych:

Rozszerzenie - Unix Rozszerzenie - DOS
.html .htm
.ihtml .iht
.whtml .wht
.ehtml .eht
.shtml .sht
.html.po .htp
.html.pn .htn
.html.pw .htw
.html.en .hte
.shtml.po .shp
.shtml.pn .shn
.shtml.pw .shw
.shtml.en .she

Dodatkowo plik .htaccess powinien pod DOS-em nosić nazwę _htacces. Tłumaczenia nazw plików z wersji DOS-owych na wersje Unix-owe (obie technologie) wykonuje program Reh (patrz niżej).

Jeżeli chcemy nie tylko tworzyć, ale i testować tworzone strony, możemy zrobić to dowolną przeglądarką, np. Netscape. Jeśli stosujemy pierwszą technologię to próby ładowania dokumentów z odpowiednimi długimi rozszerzeniami automatycznie spowodują załadowanie pliku z odpowiednim krótkim rozszerzeniem. Jeśli stosujemy drugą technologię, to niezbędny będzie program ExtFake (patrz niżej) dokonujący tłumaczenia nazw plików.

Program HtmlConv (patrz niżej) jest dostępny również w wersji DOS-owej.

Ponieważ program HtmlConv wymaga, aby wersje źródłowe dokumentów zawierały polskie litery w standardzie ISO 8859-2, należy posługiwać się edytorami pozwalającymi na ich wprowadzanie - ja osobiście polecam dowolny edytor tekstowy (np. TvEdit, Vim) i program Ogonki (autorstwa Andrzeja Górbiela), dostępny na Polskiej Stronie Ogonkowej.


Programy narzędziowe

Poniżej wymienione jest kilka programów narzędziowych (mojego autorstwa) ułatwiających przygotowywanie dokumentów zgodnie z dowolną z powyższych technologii.

Każde archiwum zawiera krótką dokumentację.

HtmlConv - źródła
Program do konwersji dokumentów HTML-owych z polskimi literami w standardzie ISO 8859-2 do dokumentów bez polskich liter i ewentualnie z polskimi literami w standardzie CP 1250. Zmienia polskie litery, URL-e w linkach, deklarację stosowanego zestawu znaków. Można go stosować do dokumentów korzystających z dowolnej z wymienionych tu technologii, a także do dokumentów łączących technologie. Powyższe archiwum zawiera źródła z przeznaczeniem dla systemów Unixopodobnych. Wymaga biblioteki Coven (patrz niżej).

HtmlConv - DOS
Program do konwersji dokumentów HTML-owych z polskimi literami w standardzie ISO 8859-2 do dokumentów bez polskich liter i ewentualnie z polskimi literami w standardzie CP 1250. Zmienia polskie litery, URL-e w linkach, deklarację stosowanego zestawu znaków. Można go stosować do dokumentów korzystających z dowolnej z wymienionych tu technologii, a także do dokumentów łączących technologie. Powyższe archiwum zawiera binaria dla MS-DOS-a.

Reh
Skrypt (a właściwie pakiet skryptów) shellowych zamieniających rozszerzenia w wersji DOS-owej na rozszerzenia w wersji Unix-owej, a także nazwę pliku _htacces na .htaccess. Dostosowane do obu wymienionych technologii. Wymagają dostępności programów sh, find, sed, mv (a więc powinny działać na dowolnym systemi Unixopodobnym. Uwaga! Wykorzystanie find może nie być w pełni przenośne).

ExtFake
Rezydentny (224 bajty) program tłumaczący długie wersje rozszerzeń stosowanych w nowej technologii na ich krótkie odpowiedniki, co umożliwia bezproblemowe testowanie dokumentów korzystających z nowej technologii.

Biblioteka Coven - źródła
Biblioteka zawierająca szereg użytecznych funkcji, m. in. do tworzenia skryptów CGI o kilku wersjach językowych (zgodne z oboma wymienionymi wyżej technologiami), konwersji polskich liter, ułatwiające pisanie skryptów CGI i inne. Powyższe archiwum zawiera źródła biblioteki i pliki nagłówkowe.


Paweł Więcek <coven@vmh.net>
Wszelkie prawa zastrzeżone.
URL tej strony: http://www.coven.vmh.net/tech/langtech.html