在我的Drupal 8设置中,我配置了两种语言(德语:默认,英语)。并非所有页面都有英文翻译,但它们会显示在导航中。
我想突出显示那些链接到没有当前所选语言翻译的网页的菜单项。
那么我怎么能在Twig中做到这一点?当我转储菜单项时,我看到一个类 MenuLinkContent 的对象,它有一个字段 entity ,可能包含答案:
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)
...
[...]
但我似乎无法真正阅读这些价值观。
答案 0 :(得分:0)
很容易,首先,您必须通过yourtheme_preprocess将当前语言添加到任何变量
yourtheme_preprocess(&$vars, $hook)
{
$language = \Drupal::languageManager()->getCurrentLanguage()->getId();
$vars['langcode'] = $language;
}
现在在你的树枝模板中,你必须检查你的实体是否有翻译,
{% if node.hasTranslation(langcode) %}
{% set node = node.getTranslation(langcode) %}
{% endif %}