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
+
0
-

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.