Sonata Admin Bundle 中的标签

Posted

技术标签:

【中文标题】Sonata Admin Bundle 中的标签【英文标题】:Labels in Sonata Admin Bundle 【发布时间】:2013-03-06 18:46:54 【问题描述】:

我已经开始使用奏鸣曲管理包。它非常方便且易于设置和使用,但我似乎无法为默认标签修复翻译

例如 link_add、link_list 将取代正确的英文标签。

#SonataAdmin
    sonata_block:
    default_contexts: [cms]
    blocks:
        sonata.admin.block.admin_list:
            contexts: [admin]
        sonata.block.service.text:
        sonata.block.service.rss:

sonata_admin:
    title:      Sonata Project
    title_logo: /bundles/sonataadmin/logo_title.png
    templates:
        # default global templates
        layout:  SonataAdminBundle::standard_layout.html.twig
        ajax:    SonataAdminBundle::ajax_layout.html.twig

        # default actions templates, should extend a global templates
        list:    SonataAdminBundle:CRUD:list.html.twig
        show:    SonataAdminBundle:CRUD:show.html.twig
        edit:    SonataAdminBundle:CRUD:edit.html.twig

    dashboard:
        blocks:
            # display a dashboard block
            -  position: left, type: sonata.admin.block.admin_list 

这是我的配置文件,这些是文档提供的基本默认设置。我在这里缺少什么来启用默认视图参数的标签?谁能帮忙

【问题讨论】:

【参考方案1】:

对于翻译菜单和表单覆盖文件:SonataAdminBundle.[your_language].xliff(内容来自:vendor/sonata-project/admin-bundle/Sonata/AdminBundle/Resources/translations/SonataAdminBundle.[your_language].xliff),将文件放入:

app/Resource/SonataAdminBundle/translations/

完整路径:

app/Resource/SonataAdminBundle/translations/SonataAdminBundle.[your_language].xliff

如果你想翻译你的字段标签,你必须在你的包中创建翻译文件,例如:

src/YourAlias/YourNameOfBundle/Resources/translations/YourAliasYourNameOfBundle.[your_language].xliff

如果你的 Admin 班级在

src/YourAlias/YourNameOfBundle/Admin/YourClassAdmin.php

Sonata 使用 FOSUserBundle 并且如果您想更改用户模块的翻译,您必须 ovverride 文件:FOSUserBundle.[your_language].yml in:

app/Resource/FOSUSerBundle/translations/FOSUserBundle.[your_language].yml

同样适用于SonataUserBundle

我使用该配置,一切正常!

【讨论】:

但是如何从 sonata admin bundle 已经拥有的翻译文件中启用默认翻译。奏鸣曲捆绑生成的标签不起作用。他们正在显示默认的树枝参数。有什么建议吗? config.yml: framework: # ... translator: fallback: %locale% paramaters: locale: [your_laguage]parameters.yml 感谢@mkjasinski 的帮助。谢谢 你好@mkjasinski,我覆盖了 app/Resource/SonataAdminBundle/translations/SonataAdminBundle.es.xliff 和关于面包屑的新翻译。这是我的代码,但不起作用:<trans-unit id="breadcrumb.link_categorias_list"> <source>breadcrumb.link_categorias_list</source> <target>Listado Categorias</target> </trans-unit> 你能帮帮我吗? 感谢@mkjasinski,我做到了,但我仍然出现类别列表,什么时候应该出现“Listado Categorias”【参考方案2】:

扩展上面@mkjasinski 的评论,Symfony 翻译组件期望在请求中找到_locale 属性。如果缺少此选项,或者找不到指定语言环境的翻译,则使用备用值。然而,这个后备值默认也是空白的,因此看到的是翻译标签而不是文本。

要解决此问题,请通过将以下内容添加到 config.yml 来设置 default translation locale:

framework:
  #...
  translator:
    fallback: %locale%

【讨论】:

以上是关于Sonata Admin Bundle 中的标签的主要内容,如果未能解决你的问题,请参考以下文章

Symfony - Sonata-Admin 菜单组翻译

Sonata mongodb admin bundle filter by reference

Sonata Admin Bundle:如何将表单中的“删除”按钮添加到嵌套实体列表中的实体?

Sonata Admin Bundle + Sonata User Bundle:覆盖登录表单

Sonata Media Bundle 与 Sonata Admin Bundle 3.0(或 2.4)

Sonata Admin Bundle:CRUD 模板只是简单的表格?