web-dev-qa-db-fra.com

Comment puis-je obtenir mon module pour voir la langue actuelle que mon utilisateur utilise?

Lorsque j'utilise Node::load(10)->toArray() je vois que mon module pense que la langue actuelle est l'anglais. J'ai la clé de langue (fr) dans l'url et quand je place \Drupal::languageManager()->getCurrentLanguage()->getId() dans mon code, il dit (fr). Comment puis-je obtenir Node :: load (10) pour voir la langue actuelle que l'utilisateur utilise?

Lorsque je traduis le type de contenu dans une autre langue, toutes les traductions de la même page semblent avoir le même identifiant à placer dans la fonction de chargement.

6
Will

Vous pouvez essayer ce qui suit:

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

Bonne chance!

11

RÉPONSE MISE À JOUR:

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

J'espère que cela fonctionne!

5
Ismail Cherri