How to translate labels in symfony2 forms with messages.en.yml?
i had to explicitly set the translation domain
e.g
->add('description','hidden', array( "label"=>"form.description", "required"=>true, 'translation_domain' => 'fooo' ));
in case of
fooo.de.xlf
In symfony 3.1 You don't need to pass translator to form type constructor. It will be translated automatically by form field name like this:
Controller action:
$form = $this->createForm(LoginType::class);
FormType class:
public function buildForm(FormBuilderInterface $builder, array $options){ $builder ->add('username', TextType::class, ['label_format' => '%name%',] );}
And your translations file (yml):
username: Your translation for username field
Hope it will help someone:)
Add translation in form for is best idea - because found if in twig much more easy
{% trans_default_domain 'YourNameBundle' %}{{'shot.tag.for.transle'|trans }}
also you must remember about translation file in your bundle,if you extend bundle from another (example - you extends FosUserBundle)you can take translate from this bundle or use func trans with params
{{'shot.tag.for.transle'|trans({}, 'TranslationNameBundle') }}
Have a nice localisation.