如何正确翻译 SonataAdminBundle 中的字符串

How to properly translate strings in SonataAdminBundle

我正在尝试使用我的捆绑包中的 .xliff 文件翻译一些 Sonata Admin - 列表页面 - 字符串。这些琴弦属于我的包而不属于奏鸣曲所以这是我遵循的步骤:

并且不起作用我仍然在列表页面上看到 nameactive 字符串,我不知道我缺少什么。我已经阅读了几篇文章 this, this 等等。可以给我一些建议吗?


由于上一个问题已通过提供的答案得到修复,但这几乎是一样的,我决定编辑 OP 而不是创建一个新的,所以我们开始吧。查看 SonataAdmin 的以下设置:

sonata_admin:
    dashboard:
        groups:
            configuration:
                icon: <i class="fa fa-lg fa-fw fa fa-folder"></i>
                label: configuration
                items:
                    - sonata.admin.category
                    - sonata.admin.command
                    - sonata.admin.alias

这是 Clanmovil/PlatformBundle/Resources/config/services.yml:

中那些服务的定义
services:
    sonata.admin.alias:
        class: Clanmovil\PlatformBundle\Controller\Admin\AliasAdmin
        tags:
            - { name: sonata.admin, manager_type: orm, group: "Configuration", label: "alias" }
        arguments:
            - ~
            - Clanmovil\PlatformBundle\Entity\Alias
            - ~
    sonata.admin.category:
        class: Clanmovil\PlatformBundle\Controller\Admin\CategoryAdmin
        tags:
            - { name: sonata.admin, manager_type: orm, group: "Configuration", label: "category" }
        arguments:
            - ~
            - Clanmovil\PlatformBundle\Entity\Category
            - ~
    sonata.admin.command:
        class: Clanmovil\PlatformBundle\Controller\Admin\CommandAdmin
        tags:
            - { name: sonata.admin, manager_type: orm, group: "Configuration", label: "command" }
        arguments:
            - ~
            - Clanmovil\PlatformBundle\Entity\Command
            - ~ 

但字符串 configurationcommandcategory(目前)尚未翻译,请参见下图:

为什么?这些翻译与 alias 位于同一个文件中。这里会发生什么?

如果您创建不同于 messages 的翻译文件,则必须明确指定翻译域。 messages 是默认的翻译域。您有两个选择,将 PlatformBundle.es.xliff 重命名为 messages.es.xliff 或指定翻译域。示例:

表单类型:

...
$builder->add('name', 'text', ['translation_domain' => 'PlatformBundle']);
...

在树枝模板中:

{{ 'name'|trans({}, 'PlatformBundle') }}

我不知道什么是 ListMapper class,但应该也支持(我猜)翻译域。