奏鸣曲用户 - 翻译
Posted
技术标签:
【中文标题】奏鸣曲用户 - 翻译【英文标题】: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 是法语)。我怀疑我的管理服务错过了一些东西。 【参考方案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]]
我在一个新项目中测试过,效果很好。
【讨论】:
以上是关于奏鸣曲用户 - 翻译的主要内容,如果未能解决你的问题,请参考以下文章