Kdyby\Translator nepřekládá ve formu hodnoty v select/radio
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Oli
- Člen | 1215
Takhle to používám:
$this->translator = $translator->domain('pw.entryForm');
$form = new Form();
$form->setTranslator($this->translator);
$container->addRadioList('gender', 'gender', [
'm' => 'male',
'f' => 'female'
])->setRequired('genderRequired');
$arrival = $container->addContainer('arrival');
$arrival->addRadioList('transport', 'transport', $this->transportsRepository->findPairs());
A zobrazí to tu hodnotu (např male
). Ani to nezobrazí
s pw.entryForm před hodnotou a překlad nefunguje.
Jediné co funguje je
[
'm' => $this->translator->translate('male'),
'f' => $this->translator->translate('female')
]
Což u tohodle nevadí. Ale chtěl bych aby mě to překládalo i číselník z databáze.
Přitom label, placeholder, setRequire, … to přeloží normálně
Něco jsem přehlídl?
// EDIT:
Tak jsem přišel na viníka. Je to tím, že ty radia vykresluju ručně.
{foreach $competitor[gender]->items as $key => $label}
<label n:name="competitors-$id-gender:$key">
<input n:name="competitors-$id-gender:$key">{$label}
</label>
{/foreach}
Nějakej nápad jak to zprovoznit? :-)
Editoval Oli (1. 3. 2016 12:37)
- David Grudl
- Nette Core | 8282
Vypisuj $input->translate($label)
nebo už ve
foreach ($input->translate($input->items) as $key => $label)