我试图翻译我的树枝上的标签。 我有一个基本的联系表格,包括名字,姓氏,电话,电子邮件。 我有一个名为" BookContact"我可以在其中添加许多联系人。 用户可以通过单击"添加联系人"生成新的联系表单。按钮(使用原型的jQuery事件,如下所述:http://symfony.com/fr/doc/current/cookbook/form/form_collections.html,我不使用taks和tafgs,但使用BookContact和Contact)。
当我在树枝上展示我的收藏时:
{% for contact in form_book_contact.contacts %}
Contact n° {{ num_contact }}
<div class="row" id="bookcontacts" data-prototype="{{ form_widget(form_book_contact.contacts.vars.prototype)|e }}">
<div class="col-md-6">
<div class="form-group">
{{ form_widget(contact.firstname) }}
</div>
</div>
<div class="col-md-6">
<div class="form-group">
{{ form_widget(contact.lastname) }}
</div>
....
{% endfor %}
输入看起来像:
<input type="text" class="form-control" placeholder="0.lastname" name="book_contact[contacts][0][lastname]" id="book_contact_contacts_0_lastname">
我的翻译文件有:
book_contact:
firstname: "Prénom"
lastname: "Nom"
.....
在这种情况下,翻译不起作用(这是正常的,因为输入的名称不是&#34;名字&#34;但是&#34; 0.firsname&#34;。 问题是我无法处理联系表格的生成数量。 当用户点击&#34;添加联系人&#34;按钮,输入看起来像:&#34; 1.firstname&#34;等...
我该如何处理这种翻译?如何在翻译文件中管理此数字更改?
谢谢你的帮助。
答案 0 :(得分:0)
由于标签已在the default form layout中翻译,因此您只需在表单类型中进行设置即可。
因此,如果您有表单类型:
class BookContactType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('firstname')
->add('lastname')
;
}
}
然后只需在模板中使用form_label(form.firstName)
并将其翻译为messages.fr.yml:
Firstname: "Prénom" # Do not forget the first uppercased character
Lastname: "Nom"
或者如果您更喜欢使用翻译前缀:
class BookContactType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('firstname', null, [
'label' => 'book_contact.firstname',
])
->add('lastname', null, [
'label' => 'book_contact.lastname',
])
;
}
}
并使用以下messages.fr.yml:
book_contact:
firstname: "Prénom"
lastname: "Nom"