代码之家  ›  专栏  ›  技术社区  ›  paul

Drupal 8和Twig获取语言

  •  2
  • paul  · 技术社区  · 8 年前

    我想得到一个节点中drupal8站点上选择的实际语言,并在语言为“en”时启动一个if请求以输出一些内容。

    这是我已经尝试过的:

    {% global language %}
    {% set lang_name = language %}
    {{ lang_name }}
    

    {{ app.session.locale }}
    {{ app.request.locale }}
    

    但它不起作用。 有人能告诉我如何通过drupal 8上的twig获得该语言吗?或者这根本不可能吗?

    4 回复  |  直到 8 年前
        1
  •  5
  •   Frank Drebin    8 年前

    在您的XXX中。主题文件:

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

    在节点模板中:

    {{ language }}
    
        2
  •  1
  •   spiilmusic    8 年前

    我认为在使用之前需要在php中设置$language {% global language %} 在细枝中:

    $language = \Drupal::languageManager()->getCurrentLanguage()->getId();
    
        3
  •  1
  •   Santo Boldizar    7 年前

    对于语言id,您可以使用:

    {{ language.getId() }}
    

    对于语言名称:

    {{ language.getName() }}
    

    例如:

    {% if language.getId() == 'sr' %}
       <p>Zdravo svete!</p>
    {% elseif language.getId() == 'hu' %}
       <p>Helló világ!</p>
    {% else %}
       <p>Hello world!</p>
    {% endif %}
    
        4
  •  0
  •   cirrus3d    2 年前

    对于分类术语,您可以这样做:

    {{ term.langcode.langcode }}