Kdyby/Translation – jak na formáty datumů, telefoních čísel atd?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Achse
Člen | 44
+
0
-

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
+
+2
-

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
+
+1
-

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í.

Achse
Člen | 44
+
0
-

Díky moc, to se mi líbí – jenom lze nějak snadno vyměnit ten DatePicker co se stará o výběr na straně klienta? Můj současný konkrétní případ je custom-přestylovaný bootstrap-datetimepicker, ale jde mi spíš o obecné řešení.

Editoval Achse (24. 9. 2014 14:34)

iguana007
Člen | 970
+
0
-

@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
+
0
-

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).