Jazykové $var pro všechny komponenty

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

Zdravím,
řeším nejelegantnější způsob jak do všech komponent implementovat proměnné pro jakzykové mutace.
Respektivě by každá mutace měla mít přístupné proměnné:

/** @var int */
private $lang_ID;
/** @var string */
private $lang;

komponent je v aplikaci opravdu hodně a zda se mi jako šílenost v každém createComponent posílat proměnné z presenteru.

Chtěl jsem zkusit dědičnost z nějakého BaseControl, ale netuším jak ideálně implementovat.

Děkuji za menší nakopnutí.

pata.kusik111
Člen | 78
+
0
-

přepiš funkci createComponent v base presenteru, aby do všech komponent posílal tyto proměnné. Takto to nebudeš muset psát do všech createComponent*() metod.

Matey
Člen | 142
+
+2
-

Ak používaš translator (napr. Kdyby\Translation) tak si v každej komponente ktorá potrebuje jazyk vyžiadaj translator a z neho jazyk. To bude asi najlepšie riešenie.

public function __construct(Translator $translator)
{
	$this->lang = $translator->getLocale();
}
iwory
Člen | 147
+
0
-

Matey napsal(a):

Ak používaš translator (napr. Kdyby\Translation) tak si v každej komponente ktorá potrebuje jazyk vyžiadaj translator a z neho jazyk. To bude asi najlepšie riešenie.

public function __construct(Translator $translator)
{
	$this->lang = $translator->getLocale();
}

Výborný, díky moc!