mam kolejny problem logistyczny. Zadanie wydaje się proste, formularze mają mieć tłumaczenia opisów pól.
Wszystko wydaje się proste, w szablonie *.twig czegoś w rodzaju:
i po sprawie. Z formualrzami już nie ma tak prosto, bo formualrz domyślnie może wyglądać tak:
...więc trzeba by zdefiniować odpowiednie teksty w samym pliku formularza *Type.php. Tylko, że tam nie mam dostępu do metody $this->get('translate').
Możecie mi podpowiedzieć, jakiś sposób tłumaczenie? Może to kwestia dodefiniowania czegoś w formularzu?
Mnie przychodzi albo tłumaczenie po stronie pliku twig każdego pola oddzielnie albo podmiana form_label(filter_form) podobnie jak podają na stronie http://symfony.com/doc/current/cookbook/fo...to-field-labels
Chyba, że mogę uzyskać dostęp do obiektu translatora jakoś z poziomu pliku *Type.php
Ciągle się uczę, proszę więc o wyrozumiałość. To pewnie jest oczywiste jak już się to wie.
--
Znalazłem coś takiego: http://sf.khepin.com/2012/01/form-label-tr...n-in-symfony-2/
Warto przetestować...
--
Niestety powyższa metoda kiepsko sobie radzi z polami entity kiedy mają być pokazane jako chceckboxy. Są wtedy tłumaczone wartości a nie sam opis pola.
--
Ostatecznie rzecz rozwiązałem średnio fajnie, ale działa i działa tak jak chcę. Może komuś się przyda.
W kontrolerze po utworzeniu obiektu fotmularza przekazuję obiekt z translatorem:
... $tft = new TextFilterType(); $tft->setTr($this->get('translator')); $filter_form = $this->createForm($tft, $defaultData); ...
Same tłumaczenia umieściłem w Resources\translations\messages.pl.yml dzięki czemu nie muszę niczego więcej podawać translatorowi.
W samej klasie TextFilterType jest po prostu metoda:
... public function setTr($tr) { $this->tr = $tr; } ...
oczywiście gdzieś wcześniej deklaruję private $tr;
w samym formularzu używam już tylko
... { $builder 'class' => 'BDKTranslatorBundle:TranslatorLang', 'property' => 'lng_name', 'multiple' => true, 'expanded' => true, 'label' => $this->tr->trans('text.filter.lang'), 'required' => false )) ...
Osobiście uważam, że to duże niedopatrzenie, że muszę dookoła trochę rzecz robić. W końcu opisy pól zwyke też się tłumaczy a zalecenie jest, żeby korzystać właśnie z katalogu Form do trzymania tam formatek.
Jeśli ktoś ma lepsze rozwiązanie, to poproszę bardzo, nawet na priv jakoś.