Symfony - Sonata-Admin 菜单组翻译
Posted
技术标签:
【中文标题】Symfony - Sonata-Admin 菜单组翻译【英文标题】:Symfony - Sonata-Admin menu group translation 【发布时间】:2015-11-06 21:29:50 【问题描述】:我在管理菜单中的组翻译有问题。它翻译标签但不翻译组:
服务: 奏鸣曲管理员语言: 类:App\Bundle\LanguageBundle\Admin\LanguageAdmin 标签: - 名称:奏鸣曲.admin manager_type: orm 组:“admin.menu.group.language” 标签:“admin.menu.group.item.languages” 论据: - ~ - App\Bundle\LanguageBundle\Entity\Language - ~
sonata.admin.language_pair:
class: App\Bundle\LanguageBundle\Admin\LanguagePairAdmin
tags:
- name: sonata.admin
manager_type: orm
group: "admin.menu.group.language"
label: "admin.menu.group.item.language_pairs"
arguments:
- ~
- App\Bundle\LanguageBundle\Entity\LanguagePair
- ~
谁能帮忙???
【问题讨论】:
【参考方案1】:对我来说,@Andrey 和 @Catalins 的组合回答就成功了:
config/packages/sonata_admin.yaml
sonata_admin:
...
dashboard:
blocks:
-
position: left
type: sonata.admin.block.admin_list
groups:
app.admin.group.cms:
label: 'app.admin.group.cms'
label_catalogue: 'messages' # <--- this is not the bundle name, but the "translation domain" / filename of the translation file
items:
- app.admin.page
roles: ['ROLE_ADMIN']
...
在translations/messages.en.yml
:
app:
admin:
group:
cms: CMS
pages:
label: Pages
【讨论】:
【参考方案2】:菜单组标签使用“SonataAdminBundle”域进行翻译,但项目标签使用“messages”域或在管理类的 $translationDomain 变量中定义的域。
【讨论】:
【参考方案3】:不幸的是,建议的答案对我不起作用:它仍然没有翻译。 这是我必须做的:
出于某种原因,label_catalogue: "messages" 甚至调用 [setTranslationDomain, [messages]] 并没有改变任何东西:Symfony 仍然会在 SonataAdminBundle.en.yml 中寻找要翻译的字符串(我使用 yml 文件)。
因此,在 app/Resources/translations/ 中创建一个文件 SonataAdminBundle.en.yml(或 xml,无论您使用哪个),并在其中添加您的组字符串:
admin:
menu:
group:
language: Language
在您的 config.yml 中,将这些行添加到 sonata_admin 下:
sonata_admin:
[...]
dashboard:
groups:
admin.menu.group.language: ~
清除缓存。重要的!在我这样做之前,它不知何故没有翻译它。
还可以使用 Symfony 翻译调试器来了解它在哪里寻找一些字符串。
希望这会有所帮助!
【讨论】:
【参考方案4】:当我添加时
label_catalogue: "YourBundleName"
进入“标签”部分,它可以帮助我翻译组的标签。
【讨论】:
【参考方案5】:您可以添加一个“翻译”节点:
translation: YourBundle
【讨论】:
以上是关于Symfony - Sonata-Admin 菜单组翻译的主要内容,如果未能解决你的问题,请参考以下文章
Symfony2 - Sonata adminbundle 菜单不会显示
Symfony2 KnpMenuBundle:设置一个菜单项,即使它不在该菜单上