Latte macro pro vložení lokalizované šablony
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- uestla
- Backer | 799
Pěkné odpoledne přeji.
Ve své aplikaci se snažím všechno automatizovat pokud možno už na úrovni Nette.
Aktuálně řeším problém, kdy si chci napsat makro, které vloží
správnou šablonu v závislosti na jazyku. Aktuální jazyk webu je uložen
v persistentním BasePresenter::$lang
, tuto proměnnou si
předávám do šablony jako $lang
. Zároveň uchovávám výchozí
jazyk, kterým je 'cs'
(v proměnné $defLang
).
A teď k makru:
Ideální by bylo, kdyby se chovalo následovně:
{includeLocalized '%lang%/template.latte'}
A rozhodování o vloženém souboru by bylo následující:
- mějme
$lang = 'en'
a$defLang = 'cs'
%lang%
by figuroval jako placeholder pro aktuální jazyk- pokud existuje en/template.latte, tak se vloží
- pokud ne, vloží se cs/template.latte (tj. výchozí šablona)
Můj problém je, že nevím, jakým způsobem otestovat existenci šablony uvnitř makra (jelikož se vkládaná šablona kompiluje a hledá se její soubor někde v cache Nette).
Mohl by mě někdo popostrčit, prosím?
Předem moc děkuji.