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 #}