Symfony2 - Ошибка перевода операторов фильтра сетки данных Sonata для поля класса orm доктрины


В моем проекте Symfony (2.5.7) я использую пакет администрирования Sonata 2.3. В классе администратора я указал свою форму сетки данных следующим образом:

protected function configureDatagridFilters(DatagridMapper $datagrid)    
{    
$datagrid    
->add('name')    
->add('created_by_user');    
}    

Где name - текст, а created_by_user - отношение "один ко многим" к классу пользователя. В результате у меня есть красивая форма фильтров, но операторы в поле created_by_user, которые являются label_type_equals и label_type_not_equals, не переводятся. Переводы предоставляются для другого поля: name: label_type_contains, label_type_not_contains, label_type_equals, которое является хорошо.

В моем приложении/config/config.yml я установил:

framework:    
   translator: { fallback: "pl" }    

Переводы предоставлены SonataAdminBundle в SonataAdminBundle.pl.xliff, расположенном в разделе поставщик/sonata-проект/админ-пакет/Ресурсы/переводы.

Переводится любая другая метка. Только те, которые связаны с типом doctrine_orm_class, не являются таковыми.

Пожалуйста, дайте мне какую-нибудь идею для решения этой проблемы. Спасибо.

Author: Grzegorz Krauze, 2014-11-28

2 answers

Файл перевода для SonataAdminBundle предназначен для "внутренних глобальных" сообщений.

Вы можете добавить свои переводы в файл по умолчанию, который должен быть расположен в Ресурсы/переводы/сообщения.pl.yml файл для добавления переводов.

Но рекомендуемый способ - создать отдельный файл для одного пакета или даже одного администратора файл: https://sonata-project.org/bundles/admin/2-3/doc/reference/getting_started.html#step-3-create-an-admin-service

Используя домен перевода , вы можете добавить глобальный файл, например "yourbundle.pl.yml" или "myadmin.pl.yml":

# Acme/DemoBundle/Resources/config/admin.yml
services:
    sonata.admin.post:
        class: Acme\DemoBundle\Admin\PostAdmin
        tags:
            - { name: sonata.admin, manager_type: orm, group: "Content", label: "Post" }
        arguments:
            - ~
            - Acme\DemoBundle\Entity\Post
            - ~
        calls:
            - [ setTranslationDomain, [AcmeDemoBundle]]
 0
Author: webDEVILopers, 2015-05-05 09:25:18

По мере обновления пакетов возникали недостающие переводы. Я перешел на SonataAdminBundle 2.3.3, но я не уверен, что это было решением. Тем не менее я не в состоянии повторить эту проблему.

 0
Author: Grzegorz Krauze, 2015-05-17 11:14:11