Twig 细枝:确定菜单项是否有翻译

Twig 细枝:确定菜单项是否有翻译,twig,drupal-8,Twig,Drupal 8,在我的Drupal8设置中,我配置了两种语言(德语:默认值,英语)。并非所有页面都有英文翻译,但它们会显示在导航中 我想突出显示那些链接到当前所选语言中没有翻译的页面的菜单项 那么我怎样才能在小树枝上做到这一点呢?当我转储菜单项时,我看到一个MenuLinkContent类的对象,它有一个字段实体,可能包含以下答案: object(Drupal\menu_link_content\Plugin\Menu\MenuLinkContent)[31277] [...] protected

在我的Drupal8设置中,我配置了两种语言(德语:默认值,英语)。并非所有页面都有英文翻译,但它们会显示在导航中

我想突出显示那些链接到当前所选语言中没有翻译的页面的菜单项

那么我怎样才能在小树枝上做到这一点呢?当我转储菜单项时,我看到一个MenuLinkContent类的对象,它有一个字段实体,可能包含以下答案:

object(Drupal\menu_link_content\Plugin\Menu\MenuLinkContent)[31277]
    [...]
  protected 'entity' =>
    object(Drupal\menu_link_content\Entity\MenuLinkContent)[31407]
      [...]
        protected 'translations' => 
          array (size=2)
            'x-default' => 
              array (size=2)
                ...
            'en' => 
              array (size=2)
                ...
[...]

但我似乎无法真正读取这些值。

很简单,首先,您必须通过主题预处理将当前语言添加到任何变量中

yourtheme_preprocess(&$vars, $hook)
{
  $language = \Drupal::languageManager()->getCurrentLanguage()->getId();
  $vars['langcode'] = $language;
}
现在在你的细枝模板中,你必须检查你的实体是否有翻译

{% if node.hasTranslation(langcode) %}
   {% set node = node.getTranslation(langcode) %}
{% endif %}

如果我已经在目标页面上,这肯定会有帮助。但我想从导航中确定这一点。因此,我需要的是从导航/菜单项到目标节点的链接。