Ok, tady je:
1. Pretty URL
Mějte zapnuté pretty URL, postup jistě všichni znáte
2. struktura webu
1. index
2. Úvod (page alias "cz", typ stránky: odkaz na jinou stránku webu - na stranu 2.1)
2.1 první stránka českého webu
2.2 druhá stránka
2.3 třetí stránka
3. Home (page alias "en", typ stránky: odkaz na jinou stránku webu - na stranu 3.1)
3.1 první stránka en webu
3.2 druhá stránka en webu
3. další jazyková verze
4. další jazyková verze
...
5. Error 404 (Errorpage 404)
3. UDT get_browserlanguage
Code: Select all
[$gCms = cmsms();
// Read browser language
$foo = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
// Only need the first two characters
$lang = substr($foo,0,2);
// Passing the parameter $lang to the template
$smarty = &$gCms->GetSmarty();
$smarty->assign('lang', $lang);
4. Volání UDT get_browserlanguage na první stránce webu (1. index)
Otevřete stránku 1. index a zakažte WISIWYG editaci obsahových bloků.
Do obsahu vložte následující kód:
Code: Select all
{get_browserlanguage}
{if $lang == 'en'}
{redirect_page page="en"}
{elseif $lang == 'de'}
{redirect_page page="de"} /* elseif opakujte podle počtu jazyků */
{else}
{redirect_page page="cz"} /* všechny ostatní nespecifikované jazyky budou přesměrovány na českou verzi */
{/if}
5. Vytvořte Global content blocky pro každý jazyk s vlaječkami
Pro každý jazyk je třeba vytvořit Global content block. Tyto bloky zajišťují následující funkce:
a) pokud existuje aktuální stránka v jiném jazyce, tak se tato stránka po kliknutí na vlaječku zobrazí (např. pokud mám stránku s novinkami v české i anglické verzi, tak se po kliknutí na vlaječky zobrazí odpovídající cizojazyčná verze)
b) pokud alternativa v jiném jazyce neexistuje, je návštěvník po kliknutí na vlaječku přesměrován na úvodní stránku zvolené jazykové verze
Vlaječky můžete sehnat tady:
http://en.wikipedia.org/wiki/List_of_countries
Global content block
flag-cz
Code: Select all
{if $czech_version}
{cms_selflink page=$czech_version image="cesta k obrázku/CZ_flag.png" title="Česká verze" alt="Česká verze" imageonly=1}
{else}
{cms_selflink page="uvod" image="cesta k obrázku/CZ_flag.png" title="Česká verze" alt="Česká verze" imageonly=1}
{/if}
Global content block
flag-en
Code: Select all
{if $english_version}
{cms_selflink page=$english_version image="cesta k obrázku/UK_flag.png" title="English version" alt="English version" imageonly=1}
{else}
{cms_selflink page="home" image="cesta k obrázku/UK_flag.png" title="English version" alt="English version" imageonly=1}
{/if}
atd.
6. Pro každý jazyk vytvořte Global content block footer
Pro každý jazyk si vytvořte Global content block do patičky webu, názvy mohou být např.
- footer-cz
- footer-en
- footer-de
atd.
7. Vytvořte si HTML šablony pro každý jazyk
Pro každý jazyk je zapotřebí vytvořit HTML šablonu, kterou si pak přiřaďte odpovídajícím stránkám podle jazykové verze.
Změny, které se provádí v šablonách jsou vyznačeny červeně.
Česká šablona
{process_pagedata}
{sitename} - {title}
{metadata}
{cms_stylesheet}
{menu start_level='2'}
{content block="german_version" assign="german_version" wysiwyg="false" oneline="true" label="Page alias v německé verzi"}
{content block="english_version" assign="english_version" wysiwyg="false" oneline="true" label="Page alias v anglické verzi"}
{global_content name='flag-de'}
{global_content name='flag-en'}
{breadcrumbs starttext='Nacházíte se'}
{title}
{content}
{global_content name='footer-cz'}
Anglická šablona
{process_pagedata}
{sitename} - {title}
{metadata}
{cms_stylesheet}
{menu start_level='2'}
{content block="german_version" assign="german_version" wysiwyg="false" oneline="true" label="Page alias v německé verzi"}
{content block="czech_version" assign="czech_version" wysiwyg="false" oneline="true" label="Page alias v české verzi"}
{global_content name='flag-de'}
{global_content name='flag-cz'}
{breadcrumbs starttext='You Are Here'}
{title}
{content}
{global_content name='footer-en'}
Šablona stránky chyby
{process_pagedata}
{sitename} - {title}
{metadata}
{cms_stylesheet}
{get_browserlanguage}
{if $lang == "en"}
{menu start_element='3.1' show_root_siblings="1"}
{elseif $lang == "de"}
{menu start_element='4.1' show_root_siblings="1"}
{else}
{menu start_element='2.1' show_root_siblings="1"}
{/if}
{if $lang != "en"}
{global_content name='flag-en'}
{/if}
{if $lang != "de"}
{global_content name='flag-de'}
{/if}
{if $lang != "cs"}
{global_content name='flag-cz'}
{/if}
{title}
{content label="Czech text" assign="content_czech"}
{content block="german" wysiwyg="true" label="German text" assign="content_german"}
{content block="english" wysiwyg="true" label="English text" assign="content_english"}
{if $lang == "en"}
{$content_english}
{elseif $lang == "de"}
{$content_german}
{else}
{$content_czech}
{/if}
{if $lang == "en"}
{global_content name='footer-en'}
{elseif $lang == "de"}
{global_content name='footer-de'}
{else}
{global_content name='footer-cz'}
{/if}
8. Přiřazení alternativních stránek
Při editaci stránky uvidíte pole podle počtu jazyků, do kterých napíšete page alias stránky v odpovídajícím jiném jazyce, např. při editaci české stránky "Novinky" napíšete do pole "Page alis v anglické verzi" alias anglické stránky s novinkami, např. news. Pokud alternativa v daném jazyce neexistuje, nechte pole prázdné.
9. Error 404
Stránka musí být nastavena na typ stránka chyby (Error 404 - stránka nenalezena) a musí jí být přiřazena šablona pro Error page (viz kód výše).V závislosti na detekovaném jazyce se na stránce chyby zobrazí odpovídající navigace, obsah i patička.
Doufám, že jsem se někde nepřepsal a že vám bude tento návod užitečný.