В моем проекте Symfony (2.5.7) я использую Sonata Admin Bundle 2.3. В классе Admin я указал свой DataGridForm следующим образом:
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, что хорошо.
В моем app / config / config.yml я установил:
framework:
translator: { fallback: "pl" }
Переводы предоставляются SonataAdminBundle в SonataAdminBundle.pl.xliff, расположенном в vendor / sonata-project / admin-bundle / Resources / translations.
Любой другой ярлык переводится. Только те, которые связаны с типом doctrine_orm_class, не являются.
Пожалуйста, дайте мне некоторую идею, чтобы решить эту проблему.
Благодарю.
Файл перевода для SonataAdminBundle для «внутренних глобальных» сообщений.
Вы можете добавить свои переводы в файл по умолчанию, который должен находиться по адресу Ресурсы / переводы / messages.pl.yml файл для добавления переводов.
Но рекомендуемый способ — создать отдельный файл для одного пакета или даже для одного файла администратора:
https://sonata-project.org/bundles/admin/2-3/doc/reference/getting_started.html#step-3-create-an-admin-service
С использованием TranslationDomain Вы можете добавить глобальный файл, например «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, но я не настолько уверен, что это было решением. Тем не менее я не могу повторить эту проблему.