error .latte je stále anglický, i když ho změním do české podoby
- rosakovnik
- Člen | 13
Zdravím,
možná je to blbý dotaz, ale každopádně jsem na fóru nenašel řešení.
Aktuálně používám nette 2.3.x.
Můj problém je takový, že když je debug mód vypnutý a zobrazí se mi například error 404.latte, tak jeho obsah je stále anglicky i když 404.latte změním do české podoby (pravděpodobně se tedy používají stále default šablony, které jsou někde uvnitř nette).
Druhý dotaz je, pokud v nějaké metodě použiji
$this->error('nějaký text')
dá se nějak tento text vložit do zmíněné error šablony?
Předem děkuji za odpověď
Editoval rosakovnik (29. 8. 2016 20:36)
- Jan Mikeš
- Člen | 771
@rosakovnik
$this->error('nějaký text');
By mělo jít zužitkovat (nikdy jsem to nezkoušel, ale logicky věřím, že to bude možné). Nemyslím si ale, že by se tato zpráva měla zobrazovat uživatelům, exception message by měla sloužit vývojářům identifikovat chybu (bližší informace o ní).
V error presenteru zkus něco jako (vychází z defaultního error presenteru):
public function renderDefault($exception)
{
if ($this->isAjax()) {
$this->payload->error = TRUE;
$this->terminate();
} elseif ($exception instanceof Nette\Application\BadRequestException) {
$code = $exception->getCode();
$this->setView(in_array($code, array(403, 404, 405, 410, 500)) ? $code : '4xx');
Debugger::log("HTTP code $code: {$exception->getMessage()} in {$exception->getFile()}:{$exception->getLine()}", 'access');
} else {
$this->setView('500');
Debugger::log($exception, Debugger::ERROR);
}
$this->template->message = $exception->getMessage();
}
V šabloně pak klasické vypsání proměnné:
Omlouváme se, došlo k chybě: {$message}
- rosakovnik
- Člen | 13
Lexi napsal(a):
A na druhou otázku, že se ti používají v production mode stále anglické hlášky, vymazal jsi cache? :-)
Ano! :D to je přesně ten problém, proč to vůbec nette neaktualizuje samo?
Moc děkuji, už jsem z toho začínal být nesvůj…
- Šaman
- Člen | 2666
Nette to aktualizuje samo, ale jen ve vývojovém prostředí. Nechceš
přece, aby na serveru při každém requestu přepočítával CRC kódy všech
zdrojáků, jestli se mu nezměnily.
Prostě do rutiny při deploy je nutné zařadit i smazání cache. Na
větších projektech se to často automatizuje nějakým scriptem, ten na to
nezapomene. Ostatní si to musí pamatovat.