diff --git a/core/lib/Drupal/Core/Plugin/CategorizingPluginManagerTrait.php b/core/lib/Drupal/Core/Plugin/CategorizingPluginManagerTrait.php
index 7f8ae617a400d66abc43c099632f31385ecd0400..2d6ed8bb75fcd7ad752806292cfb629fb78a6691 100644
--- a/core/lib/Drupal/Core/Plugin/CategorizingPluginManagerTrait.php
+++ b/core/lib/Drupal/Core/Plugin/CategorizingPluginManagerTrait.php
@@ -91,7 +91,7 @@ public function getSortedDefinitions(array $definitions = NULL, $label_key = 'la
     /** @var \Drupal\Core\Plugin\CategorizingPluginManagerTrait|\Drupal\Component\Plugin\PluginManagerInterface $this */
     $definitions = $definitions ?? $this->getDefinitions();
     uasort($definitions, function ($a, $b) use ($label_key) {
-      if ($a['category'] != $b['category']) {
+      if ((string) $a['category'] != (string) $b['category']) {
         return strnatcasecmp($a['category'], $b['category']);
       }
       return strnatcasecmp($a[$label_key], $b[$label_key]);
diff --git a/core/tests/Drupal/Tests/Core/Block/BlockManagerTest.php b/core/tests/Drupal/Tests/Core/Block/BlockManagerTest.php
index 3f373fae3e0ad2d2d9b91bb034a40547da60b8c2..8d4d191d009c29911cead3d8dce8149832807a5b 100644
--- a/core/tests/Drupal/Tests/Core/Block/BlockManagerTest.php
+++ b/core/tests/Drupal/Tests/Core/Block/BlockManagerTest.php
@@ -11,6 +11,7 @@
 use Drupal\Tests\UnitTestCase;
 use Psr\Log\LoggerInterface;
 use Drupal\Core\DependencyInjection\ContainerBuilder;
+use Drupal\Core\StringTranslation\StringTranslationTrait;
 
 /**
  * @coversDefaultClass \Drupal\Core\Block\BlockManager
@@ -19,6 +20,8 @@
  */
 class BlockManagerTest extends UnitTestCase {
 
+  use StringTranslationTrait;
+
   /**
    * The block manager under test.
    *
@@ -42,6 +45,7 @@ protected function setUp(): void {
     $container = new ContainerBuilder();
     $current_user = $this->prophesize(AccountInterface::class);
     $container->set('current_user', $current_user->reveal());
+    $container->set('string_translation', $this->getStringTranslationStub());
     \Drupal::setContainer($container);
 
     $cache_backend = $this->prophesize(CacheBackendInterface::class);
@@ -55,22 +59,22 @@ protected function setUp(): void {
     // that are purposefully not in alphabetical order.
     $discovery->getDefinitions()->willReturn([
       'broken' => [
-        'admin_label' => 'Broken/Missing',
-        'category' => 'Block',
+        'admin_label' => $this->t('Broken/Missing'),
+        'category' => $this->t('Block'),
         'class' => Broken::class,
         'provider' => 'core',
       ],
       'block1' => [
-        'admin_label' => 'Coconut',
-        'category' => 'Group 2',
+        'admin_label' => $this->t('Coconut'),
+        'category' => $this->t('Group 2'),
       ],
       'block2' => [
-        'admin_label' => 'Apple',
-        'category' => 'Group 1',
+        'admin_label' => $this->t('Apple'),
+        'category' => $this->t('Group 1'),
       ],
       'block3' => [
-        'admin_label' => 'Banana',
-        'category' => 'Group 2',
+        'admin_label' => $this->t('Banana'),
+        'category' => $this->t('Group 2'),
       ],
     ]);
     // Force the discovery object onto the block manager.