Drupal8から、Twigが採用されたことにより、テンプレート内でPHPが使えなくなりました。
D6、D7では下記のように言語コードを取得できました。
「Webサイトからお問い合わせが来ない…」とお悩みの方必見!
当サイトのノウハウを詰め込んだ『Web集客の無料ガイド』をご提供
D7
<?php global $language; echo $language->language;
D8では下記コードで現ページの言語が取得できます。
\Drupal::languageManager()->getCurrentLanguage()->getId();
取得した言語コードを、Twigに渡す方法です。
まずはカスタムモジュールを作成するか、「/themes/THEME_NAME/THEMENAME.theme」を作成します。
作成後下記コードを追加します。
THEMENAME.theme
// block.html.twigに渡す function THEMENAME_preprocess_block(&$variables) { $thislanguage = \Drupal::languageManager()->getCurrentLanguage()->getId(); $variables['thislanguage'] = $thislanguage; } // page.html.twigに渡す function THEMENAME_preprocess_page(&$variables) { $thislanguage = \Drupal::languageManager()->getCurrentLanguage()->getId(); $variables['thislanguage'] = $thislanguage; }
hook_preprocess_page() を使うと、「page.html.twig」に、指定した変数を受け取ることができます。
page.html.twig
{{ thislanguage }} {# 出力結果: ja #}