私はウェブサイトの現在の言語を取得することを知っています:
$current_lang = \Drupal::languageManager()->getCurrentLanguage()->getId();
ただし、ノードエイリアスがあることを考えると
$alias = \Drupal::service('path.alias_manager')->getAliasByPath('/node/'.$nid);
その言語を取得するにはどうすればよいですか$alias
ノード?
特定の言語のパスエイリアスを取得するには、次のコマンドを試してください。
$current_lang = \Drupal::languageManager()->getCurrentLanguage()->getId();
/** @var \Drupal\Core\Path\AliasManager $aliasManager */
$aliasManager = \Drupal::service('path.alias_manager');
$alias = $aliasManager->getAliasByPath('/node/10', $current_lang);
エイリアスから言語コードを取得したい場合は、次を試してください:
$aliasArray = \Drupal::service('path.alias_storage')->load(['source' => '/node/' . $nid]);
$lang_code = $aliasArray['langcode'];