Globální nastavení translátoru
- Vladimír Pospíšil
- Člen | 13
Dobré ráno!
Mám další hloupý dotaz – je možné nějak nastavit translátor
globálně
tak, aby byl přístupný ze všech šablon? Dle popisu na
https://doc.nette.org/…on/templates#…
je možné poslat translátor do konkrétní šablony, v mém případě
ho
ale potřebuji dostat do šablony, která je součástí externí knihovny
a ze strany PHP k ní kvůli zapouzdření není přístup. Nějaká rada
pro úplného začátečníka? Děkuji!
- CZechBoY
- Člen | 3608
Můžeš si udělat vlastní ITemplateFactory (nebo podědit od té vestavěné) a přidat překladač do šablony.
např. takto
services:
oldTemplateFactory:
create: Nette\Bridges\ApplicationLatte\TemplateFactory
autowired: false
latte.templateFactory: TemplateWithTranslatorFactory(@oldTemplateFactory)
class TemplateWithTranslatorFactory implements ITemplateFactory
{
private $templateFactory;
private $translator;
public function __construct(ITemplateFactory $templateFactory, ITranslator $translator)
{
$this->templateFactory = $templateFactory;
$this->translator = $translator;
}
public function createTemplate(Control $control = null)
{
$template = $this->templateFactory->create($control);
$template->setTranslator($translator);
return $template;
}
}
nebo přes dědičnost…
- Vladimír Pospíšil
- Člen | 13
Geniální, pane kolego :-). Přesně tohle řešení jsem potřeboval. Vřelé díky!