目前,当我使用FormBuilder创建表单时,Symfony(3.3.5)在分析器中向我显示警告,告诉我没有给定语言环境的翻译消息。
我按照symfony文档中的说明操作,但问题仍然存在。
我的翻译文件位于:app/Resources/translations/properties.fr.yml
我的config.yml文件如下所示:
parameters:
locale: fr
framework:
translator:
fallbacks: ['%locale%']
paths:
- '%kernel.project_dir%/app/Resources/translations'
该文件只包含:
properties:
zipcode:
label: 'Code postal du bien'
最后,表单就像这样创建:
$property = new Properties();
$form = $this->createFormBuilder($property)
->add('zipCode', Type\IntegerType::class, array(
'attr' => array(
'min' => '10000',
'max' => '99999'
),
'label' => 'properties.zipcode.label'
))
->getForm();
为什么我的翻译文件没有被使用?
答案 0 :(得分:2)
您应该在字段中添加一个属性,如下所示:
$property = new Properties();
$form = $this->createFormBuilder($property)
->add('zipCode', Type\IntegerType::class, array(
'translation_domain' => 'yourDomain',
'attr' => array(
'min' => '10000',
'max' => '99999'
),
'label' => 'properties.zipcode.label'
))
->getForm();
替换" yourDomain"通过您的域名(文件名)。希望这会有所帮助。
答案 1 :(得分:2)
deault翻译域是'messages'。所以你可以将properties.fr.yml更改为messages.fr.yml。另一种可能性是像这样更改翻译域:
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class' => 'Acme\Entity\DemoEntity',
'translation_domain' => 'properties'
]);
}