首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Drupal8和Twig get语言

Drupal8和Twig get语言
EN

Stack Overflow用户
提问于 2016-05-12 20:11:34
回答 3查看 9.5K关注 0票数 2

我想在一个节点中获取在Drupal8站点上选择的实际语言,并在语言为"en“时启动一个if-request来发布一些内容。

这是我已经尝试过的:

代码语言:javascript
复制
{% global language %}
{% set lang_name = language %}
{{ lang_name }}

代码语言:javascript
复制
{{ app.session.locale }}
{{ app.request.locale }}

但是它不起作用。谁能给我一个提示,我如何在Drupal8上通过twig获得语言,或者这是完全不可能的吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-05-20 23:58:14

在XXX.theme文件中:

代码语言:javascript
复制
function XXX_preprocess_node(&$variables) {
  $language = \Drupal::languageManager()->getCurrentLanguage()->getId();
  $variables['language'] = $language;
}

在您的节点模板中:

代码语言:javascript
复制
{{ language }}
票数 5
EN

Stack Overflow用户

发布于 2016-05-13 17:33:58

我认为你需要先在php中设置$language,然后才能在twig中使用{% global language %}

代码语言:javascript
复制
$language = \Drupal::languageManager()->getCurrentLanguage()->getId();
票数 1
EN

Stack Overflow用户

发布于 2017-11-03 19:39:43

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

代码语言:javascript
复制
{{ language.getId() }}

对于语言名称:

代码语言:javascript
复制
{{ language.getName() }}

例如:

代码语言:javascript
复制
{% if language.getId() == 'sr' %}
   <p>Zdravo svete!</p>
{% elseif language.getId() == 'hu' %}
   <p>Helló világ!</p>
{% else %}
   <p>Hello world!</p>
{% endif %}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37186520

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档