Kdyby/Translation – jak na formáty datumů, telefoních čísel atd?
- Achse
- Člen | 44
Zdravím,
jaký je best-practise na tuto problematiku prosím? Zatím nejlepší co mě
napadlo je podědit translátor a rozšířit o tuto logiku. Mám ale dotaz,
jak ji podstrčit TranslationExtensioně
? To se mi bohužel
nepovedlo.
Dalším krokem je pak zpracování DatePickerů a DateTimePickerů aby reflektovali translátor. Zajímalo jestli tohle někdo už neřešil, a nemá nějaké elegantní řešení.
Mě připadá že jediné opravdu univerzální a rozšiřitelné řešení, aby DatePicker (ať už jakýkoliv) měl JSkem fejknuté zobrazení hodnoty podle lokalizace (ta by se předala v konfiguraci v šabloně do JSka), a posílal do Nette ve skutečnosti (nějaký) standartní formát. FormControla DatePickeru a DateTimePickeru by se tím pádem velmi zeštíhlila a vůbec by translator nepotřebovala.
Dává to smysl?
Nebo je správnější posílat formát jak do JSka do Pickeru a posílat pak datum v tom formátu na server a pro každý jazyk to pak specielně parsovat?
Díky :)
- Filip Procházka
- Moderator | 4668
Souhlasím že je to podobný problém, ale rozhodně by to neměl řešit přímo translator (SRP).
Já třeba mám na měny helper |price
a kdyby/money (bacha, ještě to není
100%), na telefonní čísla můžeš použít https://github.com/…ber-for-php/
a taky si na to napsat helper (pár řádků).
Obecně se na tohle používá intl a doporučuji vyzkoušet ten ze Symfony
- voda
- Člen | 561
Mě připadá že jediné opravdu univerzální a rozšiřitelné řešení, aby DatePicker (ať už jakýkoliv) měl JSkem fejknuté zobrazení hodnoty podle lokalizace (ta by se předala v konfiguraci v šabloně do JSka), a posílal do Nette ve skutečnosti (nějaký) standartní formát.
Přesně takhle funguje DateInput. Z prohlížeče se hodnoty posílají ve formátu podle HTML specifikace. V JS inicializaci si pak můžeš nastavit libovolný formát zobrazení.
- iguana007
- Člen | 970
@Achse – imho ti v tom nic nebrání, co se dívám na stránku toho addonu, tak se tam stejně ručně includují js a css pro frontend/klientskou část, takže si to jen nahradíš tím svým upraveným datepickerem – jen si imho musíš dát pozor na to, aby ti ten datepicker odesílal hodnoty tak, jak to očekává ten addon na straně php ;)
- voda
- Člen | 561
Musel by jsi nahradit obsah skriptu dateInput.js. V současné implementaci jsou podporované všechny typy z html5 (datum, datum+čas, čas, měsíc, týden) a obsahuje nějaké hacky jQueryUI Datepickeru pro správnou funkčnost všech typů. Pokud ti ale stačí např. jen datum, tak by mělo být celkem jednoduché si to upravit (většinu skriptu pak můžeš smazat).