contributte/translation viac jazycny formular

oTactics
Člen | 4
+
0
-

Zdravim,
riesim jeden mensi problem a stale neviem prist na to, co by bolo najidealnejsie riesenie, takze preto som sa rozhodol napisat sem. Problem je nasledujuci, mam webovu aplikaciu, ktora ma viacero jazykov, no a formulare mi robia trochu starosti. Ak pouzivam $form->setTranslator($translator), tak to robi celkom bordel. Docital som sa tu na fore, ze by bolo najlepsie tuto funkciu nepouzivat a prekladat si to sam, lenze ja nemam ziaden napad, ako to spravit, nasla by sa nejaka chytra hlava, ktora by mi poradila, ako by to bolo fajn? Pripadne by ma zaujimalo, ako to je vyriesene napriklad tu, kedze aj tu je moznost viacerych jazykov.

Dakujem.

Editoval oTactics (14. 7. 2020 2:29)

ali
Člen | 342
+
0
-

Pouzivam $form->setTranslator($translator) a nevsimnul jsem si, ze by to delalo nejaky „bordel“ =O

chemix
Nette Core | 1296
+
0
-

@oTactics stejne jako ali, pouzivam setTranslator a vse funguje jak ma.

public function createComponentContactForm()
	{
		$form = new Form();
		$form->setTranslator($this->translator->domain('form.contact'));

		$form->addText('name', 'name');
		$form->addText('contact', 'email')->setRequired('email-R');
		$form->addTextArea('note', 'note');
		$form->addSubmit('actionSend', 'send');

		$form->onSuccess[] = function ($form, $values) {
			$contact = $this->processForm($values);
			($this->onSave)($this, $contact);
		};

		return $form;
	}

Jedine co bylo treba prekladat s premyslenim byli listy ?

// nette 2.4

$delivery = $this->orderFacade->findDeliveryTypes($this->locale); // uz vraci prelozene texty
$form->addRadioList('delivery', "delivery", $delivery)->setRequired('delivery-R')->setTranslator(null);

ale je mozne ze se to zmenilo v nette 3 (jeste jsem nezkousel)

oTactics
Člen | 4
+
0
-

Uz som zistil, v com bol problem, potom mi to aj napadlo, pouzival som $form->addEmail(...) a to robilo bordel, ak to napisem $form->addText(...)->addRule(Form:EMAIL, 'message'), tak to funguje normalne.

Dakujem.