From f2c5683d2f3a42d6561c0e52a78bcc06bb462b67 Mon Sep 17 00:00:00 2001 From: Al Munnings <al.munnings@gmail.com> Date: Sat, 16 Dec 2023 08:18:29 +1100 Subject: [PATCH] Issue #3390590 by almunnings, Yury N, CedricL: MenuItem route should not inherit language from menu --- .../GraphQL/DataProducer/ContextLanguage.php | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/Plugin/GraphQL/DataProducer/ContextLanguage.php b/src/Plugin/GraphQL/DataProducer/ContextLanguage.php index 32afc27b..11d2b975 100644 --- a/src/Plugin/GraphQL/DataProducer/ContextLanguage.php +++ b/src/Plugin/GraphQL/DataProducer/ContextLanguage.php @@ -68,7 +68,7 @@ class ContextLanguage extends DataProducerPluginBase implements ContainerFactory * * It can do weird things if changing language mid-query. * - * @param string|null $language + * @param string|null $langcode * The language to resolve the url in. * @param \Drupal\graphql\GraphQL\Execution\FieldContext $context * The cache context. @@ -76,14 +76,20 @@ class ContextLanguage extends DataProducerPluginBase implements ContainerFactory * @return string|null * The language in use. */ - public function resolve(?string $language, FieldContext $context): ?string { + public function resolve(?string $langcode, FieldContext $context): ?string { + + if ($langcode && $this->languageManager->isMultilingual()) { + + $language = $this->languageManager->getLanguage($langcode); + if ($language) { + $context->setContextLanguage($langcode); + $this->languageManager->setConfigOverrideLanguage($language); + } - if ($language && $this->languageManager->isMultilingual()) { - $context->setContextLanguage($language); $this->languageManager->reset(); } - return $language; + return $langcode; } } -- GitLab