如何在symfony2中翻译表单标签?

时间:2015-04-17 10:27:31

标签: forms symfony translation labels

我正在使用Symfony2中的内部Translation扩展来创建带有翻译的message.en.yml文件。虽然大多数元素都使用不同的名称进行记录,但字段名称(或可能是实体属性,我不确定)仅使用其名称编目。这使得处理它们非常困难。

例如,这是我的message.en.yml的样本:

  • address.contactdocumentnumber.list:__ address.contactdocumentnumber.list

  • address.contactdocumentnumber.add.new:__address.contactdocumentnumber.add.new

  • contactDocumentnumber:__ contactTocumentnumber

  • issuedAuthority:__issuingAuthority

  • documentType:__ dococuType

正如您可以看到字段名称:contactDocumentnumber,issuingAuthority,documentType只存储了我们想要的名称,其中包含 address.contactdocumentnumber.form.label.issuingAuthority

我该怎么改变? 更重要的是,Symfony2项目中的翻译模板在哪里?

我注意到当我在表单生成器中更改标签时,它确实显示在我的表单中。但是当我运行命令“php app / console translate:update --force en MyByndle”时,字段名称仍然相同,例如__fieldname。它是否有可能从其他地方获取名称,例如实体?

1 个答案:

答案 0 :(得分:0)

默认情况下,Symfony根据字段名称猜测标签。因此,名为some_field的字段将获得标签Some field。如果要覆盖它,可以在构建字段时使用可翻译字符串传递label选项。例如:

$builder->add('some_field', 'text', [
    'label' => 'section.some_field_label'
]);