2015-01-11 2 views
4

У меня есть общая проблема с переводом сообщений валидатора в Symfony, и все предлагаемые решения мне не помогают. Это мое ограничение:Symfony2 перевод сообщений валидации сообщений

// src/AppBundle/Entity/Friend.php 
/** 
     * @var string 
     * 
     * @Assert\NotBlank(message = "test") 
     * 
     * @ORM\Column(name="name", type="string", length=255) 
     */ 
     private $name; 

А файл с переводами:

// src/AppBundle/Resources/translations/validators.en.yml 
test: my message 

тот же файл с переводами я также добавлены в каталог приложений. На самом деле, это не работает. Что мне не хватает?

+0

Вы включили перевод в системе Symfony? – acontell

ответ

13

Если вы будете следовать этим шагам, он должен работать:

Сначала включите систему перевода:

# app/config/config.yml 
framework: 
    translator: { fallback: en } 

Создать ограничение, как вы делали:

// src/AppBundle/Entity/Friend.php 
use Symfony\Component\Validator\Constraints as Assert;// Don't forget this part. 

class Friend 
{ 
    /** 
    * @var string 
    * @Assert\NotBlank(message = "test") 
    * @ORM\Column(name="name", type="string", length=255) 
    */ 
    public $name; 
} 

Создать файл перевода в каталоге валидаторов для сообщений ограничений, как правило, в каталоге Resources/translations/каталога, как вы это делали.

# validators.en.yml 
test: my message 

ВАЖНО Последний, очистить кэш, как вы добавили новые переводы (сделать это, даже если вы находитесь в Dev окружающей среды).

$ php app/console cache:clear 

Для меня это решение работает.

+2

Большое спасибо, @acontell. Обычно я не использую ** clear cache **, потому что это не обязательно при работе в ** dev ** режиме. Вы спасли свое время – Jay

+1

@ Джей, да, случается со мной все время. Я обновил ответ, придавая большую важность этой части, поскольку это должно случиться с большим количеством людей. – acontell

+0

Да, вы сделали правильный – Jay

Смежные вопросы