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