[英]Configure symfony form label in doctrine config
我目前在一个项目中,我有很多具有很多字段的实体(客户的地址,电话,年龄,公司号码...),我正在为法国客户提供服务。 所以我用英语编码:
class Client
{
/**
* @var integer
*/
private $id;
/**
* @var string
*/
private $firstName;
}
而且我有这样的配置:
AppBundle\Entity\Client:
type: entity
table: null
id:
id:
type: integer
id: true
generator:
strategy: AUTO
fields:
firstName:
type: string
length: 255
options:
label: Prénom
所以options.label似乎不起作用,我想知道我可以在哪里进行这些翻译,因为它将涉及很多领域,而且由于我使用的是Sonata admin,所以我不想被迫将其放入ClientAdmin
类:
/**
* @param FormMapper $formMapper
*/
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper
->add('firstName')
->add('lastName')
->add('birthDate', 'birthday')
;
}
/**
* @param ShowMapper $showMapper
*/
protected function configureShowFields(ShowMapper $showMapper)
{
$showMapper
->add('id')
->add('firstName')
->add('lastName')
->add('birthDate')
;
}
因为我必须翻译至少两次(表单,显示...),所以我很乐意在所有应用程序中处理一次翻译。
任何想法 ? 我研究了Gedmo可翻译扩展名,但它与我要查找的内容不符:我只是想翻译表单的标签,整个应用程序将使用一种独特的语言:法语。
Symfony 2.6原理2.2至2.5
您应该看看这个。 这将帮助您自动化翻译过程。 http://jmsyst.com/bundles/JMSTranslationBundle您只需要使用键而不是实际标签(尽管在您的情况下是可选的),如下所示:
$formMapper
->add('firstName',null, array('label'=>'sonata.user.firstName')
然后,您只需要运行一个命令,它将在一个不错的Web GUI中提取所有键,然后可以从那里以所需的任何语言翻译它们。
尝试这个:
/**
* @param OptionsResolverInterface $resolver
*/
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'AppBundle\Entity\Client',
'label' => 'Prénom'
));
}
对于那些不知道的人,原来自动标签已经是翻译键了,您只需要在表单中指定translation_domain即可,所以我现在有一个messages.fr.yml
:
First Name: Prénom
够了! 无需生成/指定翻译标签。 另外,它可以在具有相似字段的表单之间重复使用! 这在我们奏鸣曲管理员的工作范围之内。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.