Nefunguje cachování překladů statických textů v latte/latte v3.0.4
- m.brecher
- Generous Backer | 863
Ahoj,
implementoval jsem si vlastní, jednoduchý Translator pro překlady statických textů v latte šablonách. Překlady fungují, ale přeložené texty se necachují do šablon, ale vždy se znovu všechny načítají z databáze.
Dokumentace Latte radí předat do Latte\Essential\TranslatorExtension druhý parametr $lang:
https://latte.nette.org/cs/develop#…
// kód z dokumentace
$extension = new Latte\Essential\TranslatorExtension(
$translator->translate(...),
$lang,
);
Já používám Latte v rámci Nette a tam se Translator registruje v presenteru (poradil @MarekBartoš) a tak jsem zkusil předat $lang jako druhý parametr do metody setTranslator():
final class FrontPresenter extends BasePresenter
{
#[Persistent]
public string $lang;
public function __construct(
.....
private Translator $translator,
)
{}
.....
public function beforeRender()
{
parent::beforeRender();
.....
$this->translator->setLang($this->lang);
$this->template->setTranslator($this->translator, $this->lang); // předání $lang pro Latte
}
}
Statické texty v šablonách se ale necachují a i nadále se načítají z databáze. Všechny překládané texty jsou tohoto typu:
<h2>{translate}Kontakt{/translate}</h2>
Prosím o radu jak zajistit, aby cachování překladů fungovalo.
Děkuji
Editoval m.brecher (16. 1. 2023 18:18)
- m.brecher
- Generous Backer | 863
Ahoj,
posílám další poznatky z testování:
- na produkčním serveru cachování překladů šablon Latte FUNGUJE.
- na vývojovém serveru na Windows cachování překladů NEFUNGUJE
- zkoušel jsem promazat cache, nepomohlo to
- vývojový i produkční server mají stejné verze Nette/Latte a oba PHP 8.1
Editoval m.brecher (16. 1. 2023 18:43)