Node::load(10)->toArray()
を使用すると、現在の言語が英語であるとモジュールが認識していることがわかります。 URLに言語キー(fr)があり、コードに\Drupal::languageManager()->getCurrentLanguage()->getId()
を配置すると、(fr)と表示されます。 Node :: load(10)を取得して、ユーザーが使用している現在の言語を確認するにはどうすればよいですか?
コンテンツタイプを別の言語に翻訳すると、同じページのすべての翻訳に同じIDがロード機能に配置されているようです。
以下を試すことができます:
$lang_code = \Drupal::languageManager()->getCurrentLanguage()->getId();
Node::load(10)->getTranslation($lang_code)->toArray();
幸運を!
更新された回答:
<?php
use Drupal\Core\Language\LanguageInterface;
use Drupal\node\Entity\Node;
$node = Node::load(10);
$langcode = \Drupal::languageManager()>getCurrentLanguage(LanguageInterface::TYPE_CONTENT);
$translation = $node->getTranslation($langcode);
// Now deal with the right language from here on.
?>
これがうまくいくことを願っています!