3

在我的 Symfony 项目 (2.5.7) 中,我使用 Sonata Admin Bundle 2.3。在管理类中,我指定了我的 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。

任何其他标签都会被翻译。只有那些连接到教义_orm_class 类型的不是。

请给我一些想法来解决这个问题。谢谢。

4

2 回答 2

0

SonataAdminBundle的翻译文件用于“内部全局”消息。

您可以将翻译添加到默认文件中,该文件应位于Resources/translations/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]]
于 2015-05-05T09:25:18.787 回答
0

As I upgraded the packages the missing translations occured. I upgraded to SonataAdminBundle 2.3.3, but I'm not so sure about this was the solution. Nevertheless I'm not able to repeate this problem.

于 2015-05-17T11:14:11.210 回答