web-dev-qa-db-ja.com

モジュールでユーザーが現在使用している言語を確認するにはどうすればよいですか?

Node::load(10)->toArray()を使用すると、現在の言語が英語であるとモジュールが認識していることがわかります。 URLに言語キー(fr)があり、コードに\Drupal::languageManager()->getCurrentLanguage()->getId()を配置すると、(fr)と表示されます。 Node :: load(10)を取得して、ユーザーが使用している現在の言語を確認するにはどうすればよいですか?

コンテンツタイプを別の言語に翻訳すると、同じページのすべての翻訳に同じIDがロード機能に配置されているようです。

6
Will

以下を試すことができます:

$lang_code = \Drupal::languageManager()->getCurrentLanguage()->getId();
Node::load(10)->getTranslation($lang_code)->toArray();

幸運を!

11

更新された回答:

<?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.
?>

これがうまくいくことを願っています!

5
Ismail Cherri