persistentní parametr v config.neon
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.

- Ivorius
 - Nette Blogger | 119
 
To je dobrý nápad. Mám takovou teoretickou otázku: je lepší to narvat všechno do jedné přepravky – něco jako Config nebo se to snažíte nějak logicky seskupovat (popřípadě individuálně) ? Ono toho moc nebude, v podstatě mě zatím napadá jen ten jazyk (ale abych netahal piáno) :)

- Majkl578
 - Moderator | 1364
 
Možná by bylo lepší na presenter a persistentní proměnnou rezignovat (ona tam sice bude, ale z pohledu modelové vrstvy je to nezajímavá informace) a řešit to třeba takto: https://github.com/…Resolver.php

- Filip Procházka
 - Moderator | 4668
 
Nebo ještě lépe, rovnou přejít na Kdyby/Translator, který to řeší (viz Majkl) :)

- Filip Procházka
 - Moderator | 4668
 
Správné řešení je záviset na translatoru, protože jazyk se může v průběhu života aplikace měnit.
namespace MyApp;
class TranslatableListener extends \Gedmo\Translatable\TranslatableListener
	implements \Kdyby\Events\Subscriber
{
	private $translator;
	public function __construct(Kdyby\Translation\Translator $translator)
	{
		$this->translator = $translator;
	}
	public function getSubscribedEvents()
	{
		return array_merge(parent::getSubscribedEvents(), array(
			'Nette\Application\Application::onRequest'
		));
	}
	/**
	 * Tenhle event se logicky musí volat až po tom v translatoru,
	 * mělo by to ovlivnit pořadí registrace v configu a případně je možné použít váhy
	 * https://github.com/Kdyby/Events/blob/master/docs/en/index.md#listener-priorities
	 */
	public function onRequest($app, $request)
	{
		$this->setTranslatableLocale($this->translator->getLocale());
	}
	public function getListenerLocale()
	{
		return $this->translator->getLocale();
	}
}