以表格标签

时间:2017-12-13 15:54:48

标签: php symfony translation

目前,当我使用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();

为什么我的翻译文件没有被使用?

2 个答案:

答案 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'
    ]);
}