diff --git a/core/lib/Drupal/Core/Menu/LocalTaskManager.php b/core/lib/Drupal/Core/Menu/LocalTaskManager.php
index d20bef0054..58b3ffea6c 100644
--- a/core/lib/Drupal/Core/Menu/LocalTaskManager.php
+++ b/core/lib/Drupal/Core/Menu/LocalTaskManager.php
@@ -191,7 +191,21 @@ public function getTitle(LocalTaskInterface $local_task) {
     $controller = [$local_task, 'getTitle'];
     $request = $this->requestStack->getCurrentRequest();
     $arguments = $this->argumentResolver->getArguments($request, $controller);
-    return call_user_func_array($controller, $arguments);
+
+    $defaultLanguage = \Drupal::service('language.default');
+    $stringTranslation = \Drupal::service('string_translation');
+    $user = \Drupal::currentUser();
+    $userAdminLangcode = $user->getPreferredAdminLangcode();
+
+    $stringTranslation->setDefaultLangcode($userAdminLangcode);
+    try {
+      $title = call_user_func_array($controller, $arguments);
+    }
+    finally {
+      $stringTranslation->setDefaultLangcode($defaultLanguage->get()->getId());
+    }
+
+    return $title;
   }
 
   /**
