Drupal 8 和 Twig 获取语言

pau*_*aul 2 drupal symfony twig drupal-8

我想获取在节点中的 drupal 8 站点上选择的实际语言,并在例如语言为“en”时启动 if 请求以输出一些内容。

这是我已经尝试过的:

{% global language %}
{% set lang_name = language %}
{{ lang_name }}
Run Code Online (Sandbox Code Playgroud)

和

{{ app.session.locale }}
{{ app.request.locale }}
Run Code Online (Sandbox Code Playgroud)

但它不起作用。有人可以给我提示如何通过 drupal 8 上的 twig 获取语言吗?或者这根本不可能?

Fra*_*bin 5

在你的 XXX.theme 文件中:

function XXX_preprocess_node(&$variables) {
  $language = \Drupal::languageManager()->getCurrentLanguage()->getId();
  $variables['language'] = $language;
}
Run Code Online (Sandbox Code Playgroud)

在您的节点模板中:

{{ language }}
Run Code Online (Sandbox Code Playgroud)

  • 啊我发现了这个问题。我必须将节点更改为字段,因为我询问字段中的语言。:)“XXX_preprocess_field”谢谢您的帮助! (2认同)