Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
689 views
in Technique[技术] by (71.8m points)

php - How to translate labels in symfony2 forms with messages.en.yml?

I am trying to get translation of form fields to work. I have messages.en.yml in my Bundle's Ressource folder.

test: it works
form:
    description: Add a description.

I want to build a form in an EntityType which translates the labels of the form fields accordingly.

$builder->add(
    'description',
    null,
    array('label' => 'form.description', 'required' => false)
);

Yet only the literal string 'form.description' gets shown, not the expected translation of Add a description.

The translation service and the messages.en.yml are loaded correctly as I can call

var_dump($this->get('translator')->trans('test'));

in a controller and get the translated result.

What am I missing when I want to treat the string 'form.description' as something that should be translated?

I suppose I have to call the trans function on them anyhow, yet how can I make it in one go automatically?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...