Я использую пакет администрирования Sonata с пакетом User Sonata в приложении Symfony 2.7. У меня есть страница «Администратор свойств». Вот его конфигурация в моих services.yml:Ярлык перевода для поля Choice не работает в Sonata Admin Datagrid filter
// ...
mybundle.admin.property:
class: MyBundle\Admin\PropertyAdmin
tags:
- { name: sonata.admin, manager_type: orm, group: Property, label: Properties }
arguments:
- ~
- MyBundle\Entity\Property
- 'MyBundle:PropertyAdmin'
Я добавил две пользовательские кнопки действий в списке администраторов свойств. Мне пришлось добавить две строки перевода action_rooms
и action_stations
для этих двух кнопок в app/Resource/SonataAdminBundle/translations/SonataAdminBundle.en.xliff
, которые я скопировал из vendor/sonata-project/admin-bundle/Sonata/AdminBundle/Resources/translations/SonataAdminBundle.en.xliff
. Они отлично работают.
Проблема заключается в том, что перевод для label_type_yes
и label_type_no
в фильтр datagrid не работает, хотя они определены в SonataAdminBundle.en.xliff
. Вот скриншот списка свойств.
app/Resources/translations/MyBundle.en.xliff
Я создал с содержанием SonataAdminBundle.en.xliff
и я добавил setTranslationDomain
в services.yml
для mybundle.admin.property
, но никакого успеха.
calls:
- [setTranslationDomain, ['MyBundle']]
Они также не работают в списке пользователей /admin/sonata/user/user/list
, порожденного Sonata User Bundle. Я замечаю, что он не работал до того, как я создал app/Resource/SonataAdminBundle/translations/SonataAdminBundle.en.xliff
.
У меня есть переводчик с поддержкой в config.yml и parameters.yml.
// config.yml
framework:
translator: { fallbacks: ["%locale%"] }
// parameters.yml
parameters:
// ..
locale: en
Я использовал это обходное решение какое-то время, и это было здорово. Затем я кое-что обновил (пока не выяснил, в чем причина), и теперь у меня есть «1» и «2» вместо «Да» и «Нет», и фильтрация не работает. Это звонит с колокольчиками с кем-нибудь? – jrg
@jrg это решение вашей проблемы, http://stackoverflow.com/a/37864256/5763965 Я ищу «глобальное» решение, вместо этого скопируйте весь код в каждый класс администратора. –