basePluginId = $base_plugin_id; $this->contentTranslationManager = $content_translation_manager; $this->stringTranslation = $string_translation; } /** * {@inheritdoc} */ public static function create(ContainerInterface $container, $base_plugin_id) { return new static( $base_plugin_id, $container->get('content_translation.manager'), $container->get('string_translation') ); } /** * {@inheritdoc} */ public function getDerivativeDefinitions($base_plugin_definition) { // Create tabs for all possible entity types. foreach ($this->contentTranslationManager->getSupportedEntityTypes() as $entity_type_id => $entity_type) { // Find the route name for the translation overview. $translation_route_name = "entity.$entity_type_id.content_translation_overview"; $base_route_name = "entity.$entity_type_id.canonical"; $this->derivatives[$translation_route_name] = [ 'entity_type' => $entity_type_id, 'title' => $this->t('Translate'), 'route_name' => $translation_route_name, 'base_route' => $base_route_name, ] + $base_plugin_definition; } return parent::getDerivativeDefinitions($base_plugin_definition); } }