选择字段的翻译标签在Sonata Admin Datagrid过滤器中不起作用

时间:2015-06-21 13:52:49

标签: php symfony sonata-admin sonata-user-bundle symfony-2.7

我在Symfony 2.7应用程序中使用Sonata Admin Bundle和Sonata用户软件包。我有一个Property Admin页面。这是我在services.yml中的配置:

// ...
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.xliffvendor/sonata-project/admin-bundle/Sonata/AdminBundle/Resources/translations/SonataAdminBundle.en.xliff。他们工作正常。

问题是数据网格过滤器中label_type_yeslabel_type_no的翻译无效,尽管它们是在SonataAdminBundle.en.xliff中定义的。这是属性列表的屏幕截图。

enter image description here

我使用app/Resources/translations/MyBundle.en.xliff的内容创建了SonataAdminBundle.en.xliff,并在setTranslationDomain中为services.yml添加了mybundle.admin.property,但没有成功。

    calls:
        - [setTranslationDomain, ['MyBundle']]

它们也不在Sonata User Bundle生成的用户列表/admin/sonata/user/user/list中工作。我注意到在我创建app/Resource/SonataAdminBundle/translations/SonataAdminBundle.en.xliff之前它没有工作。

enter image description here

我在config.yml和parameters.yml中启用了翻译器。

// config.yml
framework:
    translator:      { fallbacks: ["%locale%"] }

// parameters.yml
parameters:
    // ..
    locale: en

3 个答案:

答案 0 :(得分:1)

我通过添加<?xml version="1.0"?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en" datatype="plaintext" original="file.ext"> <body> <trans-unit id="filter.label_enabled"> <source>filter.label_enabled</source> <target>Enabled</target> </trans-unit> <trans-unit id="label_type_yes"> <source>label_type_yes</source> <target>Yes</target> </trans-unit> <trans-unit id="label_type_no"> <source>label_type_no</source> <target>No</target> </trans-unit> </body> </file> </xliff> 以及以下内容解决了这个问题:

app/Resource/SonataAdminBundle/translations/SonataAdminBundle.en.xliff

似乎压倒ScriptManager.RegisterStartupScript unlike what is said in the symfony documentation

答案 1 :(得分:0)

首先检查一下Profiler所说的内容,在2.7中你有能力检查缺失的翻译。只需检查缺少的翻译,并将其放入app / Resources / translations / MyBundle.en.xliff

答案 2 :(得分:0)

似乎是最新Sonata中的错误,因为label_type_yes / label_type_no使用&#34;消息&#34;域而不是SonataAdminBundle / SonataCoreBundle。