根据knp,this应该是如何轻松地将翻译添加到菜单中的。它不适合我。 我的菜单类:
public function createMainMenuLeft(array $options)
{
$menuLeft = $this->factory->createItem('root', array('childrenAttributes' => array('class' => 'left')));
$menuLeft->addChild('test', array('route' => 'test_route'))
->setExtra('translation_domain', 'AppBundle');
return $menuLeft;
}
在AppBundle / Resources / translations / messages.en.yml中我有
test: nothing
但是,我的菜单仍然有标签'test'而不是翻译文件中的值。我在这里错过了什么吗?
我的语言区设置在config.yml
到en
。
答案 0 :(得分:2)
经过一些研究后,我发现了在捆绑文档中的方法,而不是来自symfony的文档。模板必须被覆盖。 Source
答案 1 :(得分:0)
此解决方案的问题在于,您必须为每个菜单项设置translation_domain
。
我扩展了@KnpMenu/menu.html.twig
模板,并删除了第4行和第6-8行以禁用翻译:
{% extends '@!KnpMenu/menu.html.twig' %}
{% block label %}
{%- set label = item.label -%}
{%- if options.allow_safe_labels and item.extra('safe_label', false) %}{{ label|raw }}{% else %}{{ label }}{% endif -%}
{% endblock %}