error .latte je stále anglický, i když ho změním do české podoby

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
rosakovnik
Člen | 13
+
0
-

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

@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}
Jan Mikeš
Člen | 771
+
+1
-

A na druhou otázku, že se ti používají v production mode stále anglické hlášky, vymazal jsi cache? :-)

Editoval Lexi (29. 8. 2016 21:07)

rosakovnik
Člen | 13
+
0
-

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

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.