Textový soubor je XML soubor, který slouží k uložení veškerých textů na webu, které není potřeba (či není žádoucí) editovat v administraci. Obvykle se jedná o servisní texty jako jsou popisky tlačítek apod. Textové soubory se používají zejména u vícejazyčných webů, kde stačí jediná sada *.aspx šablon společná pro všechny jazyky.
Pro každý jazyk definovaný v elementu <Languages>
je třeba mít vytvořený příslušný soubor. Jméno souboru musí odpovídat jménu jazyka, koncovka je .config
. Například pro češtinu cs
má soubor název cs.config
, pro angličtinu en.config
atd. Textové soubory se umísťují do složky /texts
(viz Adresářová struktura webu).
Text z textového souboru se do stránky vypíše pomocí controlu <je:text>
, přičemž se vždy vezme text z textového souboru, který odpovídá aktuálnímu jazyku stránky.
Obsah textového souboru může vypadat např. takto:
<?xml version="1.0" encoding="utf-8" ?> <Texts lang="en" xmlns="urn:Bet:ns:JellyPotTxt"> <UI> <ok>OK</ok> <cancel>Cancel</cancel> </UI> <SomeText>Lorem ipsum dolor foo bar</SomeText> </Texts>
Struktura, elementy a jejich obsah může může být v textovém souboru libovolný, avšak respektující syntaci XML souboru. Povinný je pouze kořenový element Texts
s uvedením atributu lang
, jehož hodnota se shoduje se jménem příslušného jazyka.
Elementy definované v textovém souboru výchozího jazyka by měly být obsaženy i v textových souborech ostatních jazyků. Tento stav lze zkontolovat pomocí nástroje přístupného z administrace (sekce Administrace, položka Admin tools).
Výpis textu pomocí controlu <je:text>
Text z textového souboru se vypisuje do stránky pomocí controlu <je:text>
například takto:
<je:text runat="server" textNode="UI/SomeText" />
V atributu textNode
se uvede cesta k požadovanému elementu, kořenový element Texts
se neuvádí. Názvy elementů jsou case-senzitive.
Rozsáhlejší text
Element v textovém souboru může obsahovat i html značky. Je nutno ale dát pozor, aby výsledný soubor byl XML validní, tj. např. zapsat uzavírací lomítko u nepárových tagů. Elementy obsahující html značky je vhodné označit atributem htmlContent="true"
. Existence vnitřních elementů pak není nástrojem pro kontrolu textových souborů sledována.
<?xml version="1.0" encoding="utf-8" ?> <Texts lang="en" xmlns="urn:Bet:ns:JellyPotTxt"> <SomeHtmlText htmlContent="true"> Lorem ipsum dolor <em>foo bar</em>. </SomeHtmlText> </Texts>