Výchozí chybové zprávy a nepředávání názvu prvku
- norbe
- Backer | 405
Ahoj,
chtěl bych docílit toho, abych nemusel pro každý formulářový prvek
definovat chybovou zprávu. Kouknu se do třídy Rulues a co nevidím, je tam
statické pole $defaultMessages
, které by se pro tento účel dalo
použít.
Celé to je ale nepoužitelné, jelikož název formulářového prvku se nepředává jako parametr a tím pádem nemohu dát uživateli najevo, ke kterému prvku se chybová zpráva vztahuje.
Čeho přesně chci dosáhnout:
Nějaký typ jak toho jednoduše docílit? Myslím, že tohle by určitě uvítalo více lidí.
Díky
Editoval norbe (26. 1. 2010 9:46)
- norbe
- Backer | 405
Což to funguje, problém je právě v tom, že se v těch zprávách nedá využít název formulářovýho prvku. Tím pádem je to nepoužitelný (alespoň pro mne teda).
Edit: V současným stavu bych to musel do každého pravidla psát název prvku(při 2 pravidlech bych musel zadat název formulářového prvku 3x), což jde docela dost proti DRY (jedna z předností nette):
Editoval norbe (26. 1. 2010 13:36)
- Honza Kuchař
- Člen | 1662
Samo o sobě to asi bude použitelné jen trochu, ale pokud by to spolupracovalo i spřekladačem, tak to je jednoznačně použitelné a to dobře. ;)
- norbe
- Backer | 405
Na příkladu co jsem uvedl to použitelné je (obejduli se bez překladu jak
psal Honza Kuchař), ale co když se bude jednat např. o pravidlo
Form::RANGE
? To pak je výše uvedený zápis nemožný, jelikož
v InstanntClientScriptu
se nepočítá s tím, že tam budu název předávat.
Příklad:
- norbe
- Backer | 405
Teďka jsem si chvíli hrál s InstantClientScriptem
a upravil
jeden řádek, který celý problém vyřeší. Jedinou podmínkou je, že
místo %s se použije %name :-)
Úprava
InstantClientScript z Nette verze 0.9.2
Příklad
Teď už jen aby se to líbilo i Davidovi a hodil to do distribuce :-)
- David Grudl
- Nette Core | 8253
To by šlo přidat, jen místo %name
bych použil
%label
, resp. klidně obojí, ale name by byl název komponenty a
label popiska s odříznutou dvojtečkou. Stále ale váhám nad tím, jestli
prvně nahradit a pak translator, nebo naopak…
- norbe
- Backer | 405
To %label
by bylo asi lepší, s tím souhlasím. Ohledně té
dvojtečky, být to tam může, ačkoliv je to možná zbytečné (na doplnění
dvojtečky mi přijde vhodnější používat suffix
–
nedochází pak ke zbytečným duplicitám v překladu jako jednou
s dvojtečkou, podruhé bez).
Co se týče pořadí, tak já bych byl pro translator a až potom
nahrazení. Jako hlavní důvod bych uvedl to, že takhle budu mít v překladu
jednu zprávu (Field '%label' must be filled.
→
Položka '%label' musí být vyplněna
), místo X zpráv, kde X je
počet názvů polí. Nehledě na to, že v opačném případě by se asi
blbě automatizovalo hledání vět pro překlad.
- David Grudl
- Nette Core | 8253
Přidal jsem do 1.0-dev
podporu pro placeholdery
%label, %name a %value
, testujte ;)