metoda Form::addError a lokalizované chybové zprávy
- uestla
- Backer | 799
S překlady formulářů se taky semtam peru.
K překladu chybové hlášky dochází až na úrovni pravidla
(Rules::formatMessage()
), čili skutečně následující
není totéž:
$form->addRule(..., $message, ...);
// a
$form->addError($message);
Také nevím, zda je to dobře.
Na tvůj problém leda použít
$form->addError( $form->translator->translate($message) );
Ale to pro tebe asi není nic nového :-(
- duke
- Člen | 650
Ale to pro tebe asi není nic nového :-(
To opravdu ne, ale i tak díky.
Říkal jsem si, že se tomu úplně vyhnu tím, že si napíšu vlastní
validační funkci pro jistý control, kterou přidám přes
addRule(callback(…, ale narazil jsem na to, že v tomto případě zase
prakticky nelze zobrazovat chybové hlášky, které obsahují parametry
získané teprve při validaci z modelu. Resp. možná to lze pomocí
vlastního form rendereru, ale do toho jsem se zatím nepouštěl.
- smasty
- Člen | 90
kravčo napsal(a):
Bolo by skvelé, najmä ak sa jedná o jednoduchú opravu, ak by ste napísali patch :)
Tak, a je tam Pull Request.
- duke
- Člen | 650
Tak, a je tam Pull Request.
Teď ještě zajistit, aby se překlad neprováděl dvakrát pro validation rules, viz. tento řádek a přitom nějak zachovat (nebo nejlépe rozšířit) možnost doplnění parametrů do zprávy, a to tak, aby bylo možné efektivně překládat zprávy včetně podpory plurálů.
Kdyby na to stačil takovýto jednoduchý pull request, také bych ho už dávno poslal. :-)
- spidy
- Člen | 55
Tento problém pořád nebyl vyřešen? Zrovna dělám překládání formulářů a docela by se mi to hodilo… Dále jsem narazil na to, že nefunguje
$form->addText('antispam', 'napište '. $word)
->addRule(Form::EQUAL, 'napište %s', $word);
zde se sice všechno přeloží, ale %s se nenahradí za $word (zkoušel jsem dump v translatoru a do něj už se tento parametr nedostane).
- MartinitCZ
- Člen | 580
Je to už nějak vyřešené? Asi né co? :/
Mám Nette 2.0.10 a stále se nedají překládat ->addError(..);
Editoval martinit (8. 4. 2013 17:19)
- krucinal
- Člen | 38
kuty.cz napsal(a):
krucinal napsal(a):
Potreboval bych taky mit hezky prelozene formulare. Uz to nekdo spravil?
řeším to přes metodu translate… v mém případě $form->addError($this->translator->translate(‚chyba‘));
njn, tomu jsem se prave chtel vyhnout, kdyz se Nette v manualu hrde busi do prsou jak uzasne vsechno ve formularich preklada. Ale asi mi koukam nic jineho nezbyde :(
- hapi
- Člen | 35
No osobne si rikam, jestli by nebylo lepsi ty errory prekladat az na pri renderu. Myslim si ze by bylo lepsi kdyby v lokalizovatelne komponente byly texty nelokalizovane az do posledni chvile. Sice me ted nenapada kdy by se mohlo hodit ty texty mit moznost vytahnout jeste neprelozene.
Uz pak neni problem mit ve formu metodu getLocalizedErrors()
Nicmene tohodle kodu
$form->addError($this->translator->translate(‚chyba‘));
bych se konecne rad zbavil.
Klidne na to pull request udelam, jen bych byl docela rad, kdyby se k tomu prvne nekdo vyjadril.
Editoval hapi (17. 5. 2014 19:18)