Překlad v error presenteru, parametr lang se ztrácí

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

Zdravím,

řeším teď problém, že při zobrazování chyb (404, 500, …) přes error presenter se mi ztratí perzistentní parametr lang. Jak řešit překlady chybových stránek, popřípadě kde může být problém?

Předem díky za odpovědi,
TheKronnY

Oli
Člen | 1215
+
+1
-

Nejsem si jistej, ale translator (jestli používáš Kdyby/translation) si location „pamatuje“.

$this->template->locale = $this->translator->getLocale();
TheKronnY
Člen | 22
+
0
-

No, neber mě špatně, ale na to jsem se tak úplně neptal. Zajímá mě jak je to s těmi parametry ve chvíli kdy to zpracovává error presenter po forwardu od někud jinud.

V případě že je s parametry problém uložím si to do session, to není problém.

David Matějka
Moderator | 6445
+
+1
-

v request na error presenter obsahuje v parametrech predchozi request, takze tam muzes mit neco jako

public function actionDefault(Nette\Application\Request $request)
TheKronnY
Člen | 22
+
+1
-

No, nakonec jsem se přes něco takového z Error4xxPresenteru dopracoval k mému „perzistentnímu“ parametru :D

public function startup()
{
	//  Získání "persistentního" parametru lang z předcházejících requestů
	$this->lang = $this->getRequest()->getParameters()['request']->getParameter('lang');

	parent::startup();

	if (!$this->getRequest()->isMethod(Nette\Application\Request::FORWARD))
	{
		$this->error();
	}
}

Díky za nápady :)

Editoval TheKronnY (12. 11. 2016 8:13)