How to get translated entity bundle label

Loading the correct entity bundle label is not quite straightforward. Because it is a config entity, you need to switch the active configuration language and revert it. Below is an example of how to get a translated entity bundle label.

// Get required services. // Inside classes, dependency injection should be used. $languageManager = \Drupal::languageManager(); $entityTypeManager = \Drupal::entityTypeManager(); // Get entity type id. $entity_type = $entity->getEntityType(); // Get entity bundle id. $bundle = $entity->bundle(); // Get entity language code. $language = $entity->language(); // Store original configuration language to set it back later. $original_language = $languageManager->getConfigOverrideLanguage(); // Override config language to match the languge we need label in. $languageManager->setConfigOverrideLanguage($language); /** @var \Drupal\Core\Config\Entity\ConfigEntityBundleBase $bundle */ $bundle = $entityTypeManager->getStorage($entity_type->getBundleEntityType())->load($bundle); if ($bundle) { // Get bundle label. $bundle_label = $bundle->get('name'); } // Revert language to previous. $languageManager->setConfigOverrideLanguage($original_language);
Buy Me a Coffee at ko-fi.com

Add new comment