Control slouží pro vypsání přepínače jazykových mutací webu – do stránky vypíše odkazy na ekvivalentní stránku v ostatních jazycích. Jazyky a jejich pořadí jsou určeny jejich definicí v sekci Languages v Site.config, jejich názvy pochází z atributu title
příslušného tagu Language.
<je:langSelector runat="server" />
Atributy
currentLangClass nepovinný [string]
Název třídy, kterou bude označen aktuální jazyk; v případě použití atributu
tag
bude tato třída přiřazena jeho obalujícímu tagu. Není-li atribut uveden, použije se třídacurrent-lang
. Je-li uveden jako prázdnýcurrentLangClass=""
, není aktuální jazyk označen žádnou třídou.langClass nepovinný [string]
Název třídy, kterou bude označen odkaz na každý z jazyků; v případě použití atributu tag bude tato třída přiřazena obalujícímu tagu, nikoliv samotnému odkazu. Není-li atribut uveden, použije se třída
lang
. Je-li uveden jako prázdnýlangClass=""
, nejsou jazyky označeny žádnou třídou.langClassPrefix nepovinný [string]
Prefix třídy, kterou jsou označeny jednotlivé jazyky. Na rozdíl od atributu
langClass
je tato třída specifická pro každý jazyk – za uvedený prefix je doplněno jméno jazyka. Není-li atribut uveden, použije se prefixlang-
. Je-li uveden jako prázdnýlangClassPrefix=""
, nejsou jazyky označeny žádnou třídou.langs nepovinný [string]
Seznam jazyků oddělených čárkou, které má control vypsat. Jazyky se uvádí pod jejich jménem určeným atributem
name
příslušného tagu Language v Site.config. Jazyky se vypíšou v pořadí, v kterém jsou v atributu uvedeny. Není-li atribut uveden, jsou vypsány všechny definované jazyky.separator nepovinný [string]
Obsah atributu se vloží mezi jednotlivé odkazy.
tag nepovinný [string]
HTML tag, kterým bude obalen odkaz na každý jednotlivý jazyk. Není-li uveden, odkazy se vypíšou jen jako HTML tag
<a>
, aktuální jazyk pak jako<span>
.writeCurrentLang nepovinný [true, false]
Je-li atribut nastaven na false, ve výsledném výstupu je vynechán aktuální jazyk.
Jazykově závislé kolekce
Fungování controlu je problematické na stránce, která zobrazuje položku jazykově závislé kolekce. Control v tomto případě sice vypíše odkazy do ostatních jazyků, avšak na stejný prvek kolekce, pro který neexistuje ekvivalent v jiném jazyce. Pokud kliknutím na takový odkaz přejdeme na jinou jazykovou mutaci webu, dostaneme se na stránku, která sice je v požadovaném jazyce, ale veškerý obsah pocházející z prvku kolekce zůstane nezměněn, tj. bude v původním jazyce. Tento problém lze vyřešit pomocí controlu <je:langRedirect>
.
Příklad
Mějme web se třemi jazykovými mutacemi – anglické, české a japonské. Do stránky default.aspx
umístíme:
<je:langSelector runat="server" separator=" | " />
Control vypíše:
<span class="lang lang-en current-lang">English</span> | <a href="/cs/default.aspx" class="lang lang-cs">Česky</a> | <a href="/ja/default.aspx" class="lang lang-ja">日本語</a>
Pokud bychom ho chtěli mít v podobě seznamu <ul>
, udělali bychom to takto:
<ul> <je:langSelector runat="server" tag="li" /> </ul>
Control vypíše:
<ul> <li class="lang lang-en current-lang">English</li> <li class="lang lang-cz"><a href="/cz/default.aspx">Česky</a></li> <li class="lang lang-ja"><a href="/ja/default.aspx">日本語</a></li> </ul>