在我使用的个人项目中:
v7.1.6
v3.3.8
dev-master / 2.2.x-dev
(dev
版本,因为它与当前Symfony 3.3.x
版本兼容,早期版本未通过composer
安装。)[link 1],{{ 3}},[link 2]以管理菜单。v3.3.7
在[2],[3]和代码示例[4]中设置我使用过的文档。我的菜单正常运行,Bootstrap
和KnpMenuBundle
之间的集成也有效。
我在菜单的Logged in as myTestUserName
部分使用了user profile
。我想从翻译中排除这个项目,因为我手动获得完整的翻译字符串(代码示例1)。
即使将translation_domain
明确设置为false
,我也会在Translation Messages
的{{1}}部分的缺失部分中显示所述菜单项。
在使用profiler
的情况下,确保特定翻译未包含在缺失部分的正确方法是什么?
我的KnpMenuBundle
MenuBuilder
在$profile->setChildrenAttribute("class", "dropdown-menu")
->addChild('Logged in as', array('label' => $getTranslatedLoggedInAs))
->setExtra('divider_append', true)
->setExtra('translation_domain', false);
loggedInAs
个翻译后的字符串
MenuBuilder
请告知。
感谢您的时间和知识。
答案 0 :(得分:1)
我认为你在label
区的[link 4]中有错误。 translation_domain
未检查false
,并且以任何方式翻译标签。
{% block label %}{{ item.label|trans(
item.getExtra('translation_params', {}),
item.getExtra('translation_domain')
) }}{% endblock %}
了解KnpMenuBundle
https://github.com/KnpLabs/KnpMenuBundle/blob/master/Resources/views/menu.html.twig
{% block label %}
{%- set translation_domain = item.extra('translation_domain', 'messages') -%}
{%- set label = item.label -%}
{%- if translation_domain is not same as(false) -%}
{%- set label = label|trans(item.extra('translation_params', {}), translation_domain) -%}
{%- endif -%}
{%- if options.allow_safe_labels and item.extra('safe_label', false) %}{{ label|raw }}{% else %}{{ label }}{% endif -%}
{% endblock %}