2015-07-06 2 views
0

Я только что обновил свой Symfony с 2.5 до 2.7. У меня есть Entity, в данном случае Product, который имеет некоторые свойства с некоторыми ограничениями, например year.Symfony 2.7 Перевод Ограничения Сообщения, не поддерживающие локаль

class Product { 

     /** 
     * @ORM\Column(type="float", nullable=true, options={"default" = 0.00}) 
     * @Assert\NotBlank(message = "product.year.notBlank") 
     */ 
     private $year; 
    } 

Мое мое сообщение переводится с app/Resources/translations/validators.en.yml. Но теперь он больше не уважает языковой стандарт. У меня есть 2 файла версии en и версия fr, но теперь она получает только версию en.

Он отлично работает для любых меток, которые у меня есть в моих формах, проблема связана с файлами валидаторов.

+0

у вас есть файл validators.fr.yml, не так ли? – DonCallisto

+0

очистите кеш. – nifr

+0

У меня есть приложение/Resources/translations/validators.fr.yml-файл, и я несколько раз очищал свой кеш –

ответ

0

Кажется, что вы работаете сейчас. Проблема заключалась в том, что я звоню этот приемник

projet_user.language.kernel_request_listener: 
    class: Acme\DemoBundle\EventListener\LanguageListener 
    tags: 
     - { name: kernel.event_listener, event: kernel.request, method: setLocaleForUnauthenticatedUser } 

и теперь я переместил содержимое функции setLocaleForUnauthenticatedUser в onKernelRequest функции listerner.

projet_user.locale_listener: 
    class: Acme\DemoBundle\EventListener\LocaleListener 
    arguments: ["%kernel.default_locale%"] 
    tags: 
     - { name: kernel.event_subscriber } 

Похоже, просьба, что я использовал для неаутентифицированных пользователей теперь называюсь позже и воздействующий локаль, определяемые предпочтениями пользователей. Я собираюсь сделать еще несколько тестов и закрыть билет.