Form, createPrefixedTranslator a možnost některé texty brát odjinud
- H0w4rd
- Člen | 96
Ve $form mám Nette\Application\UI\Form.
Nastavím
$form->setTranslator($this->translator->createPrefixedTranslator('admin.articlePresenter'));
Jedná se o Contributte translation.
Funguje skvěle pro texty, které mám v jazykových souborech v sekci ‚articlePresenter‘:
->addText(ArticleRepository::COLUMN_TITLE, ArticleRepository::COLUMN_TITLE)
->setRequired(true)
Validační hlášky mám globálně a nechci je 50× rozkopírovávat do jednotlivých sekcí. Tohle tím pádem nefunguje tak, jak bych chtěl:
->addRule(FormAlias::REQUIRED, $this->translator->translate("admin.labelIsRequiredMasculine"))
->addRule(FormAlias::MAX_LENGTH, $this->translator->translate("admin.labelCanBeOnlyLongMasculine", ["maxLength" => 100]), 100);
Validační hláška:
articlePresenter.Nadpis článku je povinný.
Tohle samozřejmě nepomůže:
->addRule(FormAlias::REQUIRED, "admin.labelIsRequiredMasculine")
Validační hláška:
articlePresenter.admin.labelIsRequiredMasculine
Prostě nutně potřebuju většinu textů brát ze sekce
‚articlePresenter‘ a některé z jiné sekce.
Kéž by tam byla nějaká magická značka něco jako u cest ve filesystému
když se potřebuju dostat o úroveň výš, že bych napsal „../“, ale nic
takového jsem nenašel.
Nepomáhá ani Contributte\Translation\Wrappers\NotTranslate ani Contributte\Translation\Wrappers\Message.
Dá se to nějak řešit?
Editoval H0w4rd (4. 4. 2023 14:06)
- Gappa
- Nette Blogger | 208
H0w4rd napsal(a):
Kéž by tam byla nějaká magická značka něco jako u cest ve filesystému když se potřebuju dostat o úroveň výš, že bych napsal „../“, ale nic takového jsem nenašel.
Něco takového? :)
V dokumentaci jsem to ale nenašel – fíčura je v Kdyby/Translation, tak tam byla na žádost naportována:
- emololftw
- Člen | 82
Gappa napsal(a):
H0w4rd napsal(a):
Kéž by tam byla nějaká magická značka něco jako u cest ve filesystému když se potřebuju dostat o úroveň výš, že bych napsal „../“, ale nic takového jsem nenašel.Něco takového? :)
V dokumentaci jsem to ale nenašel – fíčura je v Kdyby/Translation, tak tam byla na žádost naportována:
funguje perfektně s https://doc.nette.org/…onfiguration
stačí nastavit
forms:
messages:
MIN_LENGTH: '//messages.form.minLenght'
pak stačí jen používat
$form->addText('username', 'username')
->addRule($form::MIN_LENGTH, null, 100);