【问题标题】:Sonata User - Translate奏鸣曲用户 - 翻译
【发布时间】:2013-07-03 07:54:31
【问题描述】:

我已经扩展了 SonataUserBundle,我正在尝试将法语翻译放入其中。

这是我的管理服务定义:

sonata.admin.user:
    class: Application\Sonata\UserBundle\Admin\Entity\UserAdmin
    tags:
        - { name: sonata.admin, manager_type: orm, group: user, label: users }
    arguments:
        - null
        - Application\Sonata\UserBundle\Entity\User
        - SonataAdminBundle:CRUD
    calls:
        - [setTranslationDomain, [SonataUserBundle]]
        - [setUserManager, [@fos_user.user_manager]]
        - [setSecurityContext, [@security.context]]

如您所见,翻译域设置为SonataUserBundle

我在src/Application/Sonata/UserBundle/Resources/translations/SonataUserBundle.fr.yml中设置了一些标签

#...
list:
    label_firstname: Prénom
    label_username: Nom d'utilisateur
#...

但它们没有被考虑在内(缓存被清除)

但是,如果我删除此文件,它会侮辱我

文件“.../src/Application/Sonata/UserBundle/Resources/translations/SonataUserBundle.fr.yml”必须包含 YAML 数组。

修改翻译域完全没有效果。

我做错了什么?

【问题讨论】:

  • SonataUserBundle 已翻译。您是否更改了参数和配置文件中的语言环境?
  • 区域设置已经设置为法语,其他管理员工作正常。事实上,只有 UserAdmin 部分在做这件事(包装 SonataAdmin 是法语)。我怀疑我的管理服务错过了一些东西。

标签: symfony translation sonata-admin sonata-user-bundle


【解决方案1】:

您已在服务定义中添加 label_translator_strategy: sonata.admin.label.strategy.underscore:

  sonata.admin.user:
    class: Application\Sonata\UserBundle\Admin\TestAdmin
    tags:
        - { name: sonata.admin, manager_type: orm, group: users, label: users, label_translator_strategy: sonata.admin.label.strategy.underscore }
    arguments:
        - null
        - Application\Sonata\UserBundle\Entity\User
        - SonataAdminBundle:CRUD
    calls:
        - [setTranslationDomain, [SonataUserBundle]]
        - [setUserManager, [@fos_user.user_manager]]
        - [setSecurityContext, [@security.context]]

我在一个新项目中测试过,效果很好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-05
    • 1970-01-01
    • 2015-05-19
    • 2018-04-30
    • 2019-10-13
    • 2018-11-08
    • 2019-05-17
    • 2017-04-27
    相关资源
    最近更新 更多