Jazykově závislé dokumenty musí být uloženy v souborech, jejich jména mají na konci příponu identifikující patřičný jazyk: |
Příklad: Pokud má být dostupná česká a anglická varianta dokumentu, musí být česká varianta uložena v souboru s příponou ".cz" a anglická varianta v souboru s příponou ".en":
jmeno.html.cz # dokument v jazyce cs jmeno.html.en # dokument v jazyce en
Přípona jména souboru ".cz", či ".en" indikuje jazyk dokumentu. Přípony musí definovat správce serveru v konfiguraci serveru: |
# konfigurace serveru AddLanguage cs .cz # přípona jména souboru ".cz" indikuje jazyk "cs" AddLanguage en .en # přípona jména souboru ".en" indikuje jazyk "en"Konvence pojmenování uložených dokumentů se nepromítá do hypertextových odkazů v dokumentech - v nich jsou odkazy na soubor bez přípony (<A HREF="jmeno.html">).
Pokud má být dokument pouze v jednom jazyce, může být uložen v souboru bez jazykové přípony. Je třeba ovšem správně nastavit, v jakém kódu je. Implicitně jsou soubory bez jazykové přípony považovány za dokumenty bez určení jazyka, v kódu ISO-8859-1. |
Příklad:
jmeno.html # dokument bez určení jazyka v kódu ISO-8859-1
Pro každý jazyk je definován parametrem LanguageCharset zdrojový kód dokumentů. Dokumenty, pro které není definován zdrojový jazyk (jméno souboru nemá jazykovou příponu), jsou uloženy v kódu definovaném parametrem DefaultCharset. |
Tyto parametry nastavuje správce v konfiguraci Web serveru. Obvyklé nastavení je:
LanguageCharset en iso-8859-1 # Dokumenty v jazyce en jsou v kódu ISO-8859-1 LanguageCharset cs iso-8859-2 # Dokumenty v jazyce cs jsou v kódu ISO-8859-2 DefaultCharset iso-8859-1 # Dokumenty bez jazyka jsou v kódu ISO-8859-1
Pokud chcete ukládat dokumenty v jiných kódech, než jsou implicitně nastaveny, můžete si zvolit kód pro daný jazyk s platností na adresář. Stačí, když si vytvoříte v daném adresáři soubor se jménem .htaccess (nezapomeňte, že musí být čitelný pro uživatele, pod kterým běží WWW server). Interpretaci parametrů v .htaccess musí správce Web serveru povolit parametrem AllowOverride FileInfo.
Příklad: Pro ukládání českých dokumentů v kódu MS Windows stačí vytvořit ve stejném adresáří jako jsou dokumenty soubor .htaccess s tímto obsahem:
LanguageCharset cs windows-1250Všechny dokumenty s příponou ".cz" (tedy v jazyce "cs") v daném adresáři a všech jeho podadresářích budou v kódu windows-1250 (CP-1250).
Příklad: Podobně lze pro adresář zvolit implicitní kód, ve kterém jsou uloženy dokumenty bez jazykové přípony:
DefaultCharset iso-8859-2Všechny soubory bez zaregistrované jazykové přípony adresáři jsou v kódu ISO-8859-2.
<a href="jmeno.html">a soubor "jmeno.html" neexistuje, ale existují soubory "jmeno.html.postfix", vybere se vhodná jazyková mutace podle preferencí prohlížeče zaslaných v hlavičce Accept-Language (Netscape: Options -> General Preferences -> Language, Internet Explorer: Options -> Languages). Pokud prohlížeč tuto hlavičku neposílá, pak je implicitní jazyk odvozen z doménové adresy. Pro doménu "cz" je zvolena čeština, pro doménu "sk" slovenština, apod.
Kód, ve kterém je dokument zaslán prohlížeči, je odvozen podle preferencí prohlížeče zaslaných v hlavičce Accept-Charset. Pokud prohlížeč hlavičku Accept-Charset nezasílá, pak je zvolen kód dokumentu podle pravidel nastavených v konfiguraci serveru. Obvyklé nastavení zvolí kód ISO-8859-2 pro všechny klienty z domény "cz", s výjimkou klientů, o kterých je známo, že tento kód nezvádají.
Pro explicitní volbu jazykové a kódové mutace se používá přípona jména dokumentu v URL. Na jakýkoli dokument se lze odkázat jménem s příponou jazyka (cs, en) a kódu:
US-ASCII, ISO-8859-1, ISO-8859-2, CP437, CP850, CP852, CP895 windows-1250..6, UNICODE-1-1-UTF-7 a UTF-8Tyto přípony jsou zachovány (dynamicky doplněny) ve všech odkazech, které jsou v dokumentu.
Příklad:
http://www.fit.vutbr.cz/index.html.cs.windows-1250Server jméno jazyka a kódu odřízne, vytvoří z nich hlavičky Accept-Language a Accept-Charset a pak zpracuje standardním způsobem požadavek na "index.html". Pokud je na Web serveru soubor "index.html.en" a "index.html.cz", zvolí soubor s příponou ".cz" (jazyk "cs") a při odeslání se překóduje z ISO-8859-2 do windows-1250. Zároveň server doplní do všech hypertextových odkazů v dokumentu explicitně zadanou příponu ".cs.windows-1250". Tím je zvolený jazyk a kód nesen při procházení Web serverem dále.
<A HREF="/cgi-bin/codepage">Změna kódu a jazyka/Change language and charset</a>Odkaz na "/cgi-bin/codepage" je odkazem na CGI skript, který nabídne odkazy pro přepnutí jazyka a kódu. Skript si zjistí URL, ze kterého odkaz vedl (pokud ho ovšem umí klient předat v hlavičce HTTP_REFERER) a vygeneruje odkazy s různými příponami na tentýž dokument. Uživatel se tak po výběru jazyka a kódu vrátí do stejného dokumentu.
Poznámka: Při konfigurace serveru musí být zajištěno, aby pro každý jazyk, který je schopen server poskytovat, bylo v CGI skriptu codepage doplněno odstranění explicitní přípony jazyka a kódu. Příklad CGI skriptu v distribuci modulu toto dělá pouze pro jazyky CS a EN.
#! /bin/sh # příklad CGI skriptu v shellu # echo "Content-Type: text/html; charset=windows-1250" echo "Content-Language: cs" echo <--- zde je vypsán prázdný řádek! ... výstup skriptu v kódu Windows-1250Podrobnější popis najdete v kapitole Jazykově závislé CGI skripty.
[ Zpět | Domácí stránka | Web server | Jazyk/Language ]