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, не являются таковыми.
Пожалуйста, дайте мне какую-нибудь идею для решения этой проблемы. Спасибо.
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]]
По мере обновления пакетов возникали недостающие переводы. Я перешел на SonataAdminBundle 2.3.3, но я не уверен, что это было решением. Тем не менее я не в состоянии повторить эту проблему.