Content-Type: text/html; charset=iso-8859-2 Toto je výstup v kódu ISO-8859-2 ...Pokud není parametr charset v hlavičce uveden, předpokládá se, že výstup je v kódu ISO-8859-1. Až do verze mod_html 2.3 včetně byl kód výstupu odvozován podle jazyka, u novějších verzí to již neplatí!
/WWW/cgi-bin/script.cz /WWW/cgi-bin/script.enTento postup je stejný jako při vytváření jazykových mutací dokumentů. V tomto případě se na skript odkazujeme pomocí URL "/cgi-bin/script" a server vybere požadovanou mutaci podle preferencí klienta. Předpokladem samozřejmě je, že pro adresář CGI skriptů je povolen parametr MultiViews. Skript generuje výstup přímo v daném jazyce. Skript by měl generovat hlavičku Content-Language se správným obsahem:
Content-Type: text/html; charset=iso-8859-2 Content-Language: cs Toto je výstup v jazyce cs a kódu ISO-8859-2 ...Kód výstupu může být libovolný, podle potřeby je případně překódován do kódu, který požaduje klient.
V druhém případě existuje pouze jeden skript a výběr podle jazyka, typu a kódu není uplatněn. V tomto případě musí skript sám určit z proměnné prostředí HTTP_ACCEPT_LANGUAGE, v jakém jazyce je požadován výstup . Problémem zde je, že odpovídající hlavička Accept-Language může mít poměrně složitý tvar, např.:
Accept-Language: en;q=0.9, en-gb;q=0.99, de;q=0.7Nelze tedy jednoduše testovat HTTP_ACCEPT_LANGUAGE na zkratku jména jazyka! Skript by měl generovat na výstupu hlavičku Content-Language, ale její obsah musí být kompatibilní s hlavičkou Accept-Language. Pokud by nebyl, může se stát, že při následném výběru požadovaného kódu bude shledána oznámená varianta nepřijatelnou a výsledkem bude odpověď NOT_ACCEPTABLE. Pokud tedy skript neumí spolehlivě určit přijatelný jazyk podle HTTP_ACCEPT_LANGUAGE, neměl by generovat hlavičku Content-Language! Kód výstupu může být opět libovolný, podle potřeby je překódován do kódu, který požaduje klient.
Pokud byl výběr úspěšný, dostane klient výstup v požadovaném kódu, což může být jiný, než který skript oznámil a generuje. Při překódování výstupu modul mod_html zároveň doplní do odkazů v dokumentu kontext (zvolený kód a případně jazyk) a zpracuje vložené příkazy.
CHARSET_TO | Doporučený kód výstupu podle preferencí klienta. Je roven HTTP_FORCED_CHARSET, resp. HTTP_CHARSET_TO. Pokud klient generuje výstup v tomto kódu, nebude již dále překódován za předpokladu, že souhlasí i výstupní jazyk podle LANGUAGE. Klient může toto doporučení ignorovat a generovat výstup v kódu, který se mu hodí. |
FORCED_SUFFIX | Explicitní požadovaná přípona dokumentu obsahující zvolený jazyk a kód. Pokud není zvolen explicitní jazyk nebo kód, prázdný řetězec. |
HTTP_FORCED_CHARSET | Explicitní požadovaný kód z postfixu URL. Pokud není, prázdný řetězec. |
HTTP_CHARSET_TO | Dohodnutý kód výstupu podle preferencí klienta. Má význam pouze v případě, že HTTP_FORCED_CHARSET nemá hodnotu. Pokud nelze kód určit, prázdný řetězec. |
LANGUAGE | Požadovaný jazyk výstupu. Odpovídá HTTP_FORCED_LANGUAGE, resp. příponě jména skriptu. |
HTTP_FORCED_LANGUAGE | Explicitní požadovaný jazyk z postfixu URL. Pokud není, prázdný řetězec. |
<!--#echo var="CHARSET_TO"-->Proměnná CHARSET_TO je při zpracování vloženého příkazu nahrazena jménem skutečného výstupního kódu.
Další způsob, jak dostat jméno skutečného výstupního kódu, je použít expanzi proměnných ve formulářových značkách <INPUT>. V těchto značkách je v atributu VALUE prováděna expanze proměnných stejně jako ve vložených příkazech pro server, takže lze zapsat:
<INPUT TYPE=HIDDEN NAME=CHARSET VALUE="$CHARSET_TO">
[ Zpět | Domácí stránka | Web server | Jazyk/Language ]