diff --git a/core/modules/content_moderation/src/EntityTypeInfo.php b/core/modules/content_moderation/src/EntityTypeInfo.php index 861b945..e4be017 100644 --- a/core/modules/content_moderation/src/EntityTypeInfo.php +++ b/core/modules/content_moderation/src/EntityTypeInfo.php @@ -370,16 +370,18 @@ public function formAlter(array &$form, FormStateInterface $form_state, $form_id ->enforceRevisionsEntityFormAlter($form, $form_state, $form_id); if (empty($this->validator->getValidTransitions($entity, $this->currentUser))) { - drupal_set_message('Due to draft revisions on other translations this entity cannot be saved.', 'error'); + drupal_set_message(t('This @entity_type_label cannot be saved, please publish or revert all draft revisions first.', ['@entity_type_label' => $entity->getEntityType()->getLabel()]), 'error'); } $invalid_transitions = array_diff_key($this->validator->getPermittedTransitions($entity, $this->currentUser), $this->validator->getValidTransitions($entity, $this->currentUser)); if ($invalid_transitions) { - $invalid_transitions_string = implode(', ', array_map(function ($transition) { return $transition->label(); }, $invalid_transitions)); + $labels = array_map(function ($transition) { return strtolower($transition->label()); }, $invalid_transitions); + $last = array_pop($labels); + $invalid_transitions_string = implode(', ', $labels) . ', or ' . $last; $form['invalid_transitions'] = [ '#type' => 'item', '#prefix' => '', - '#markup' => t('You cannot @invalid this @entity_type_label because there are other translations with unsaved draft revisions.', ['@invalid' => $invalid_transitions_string, '@entity_type_label' => $entity->getEntityType()->getLabel()]), + '#markup' => t('It is not possible to @invalid this @entity_type_label until all draft revisions are published or reverted.', ['@invalid' => $invalid_transitions_string, '@entity_type_label' => $entity->getEntityType()->getLabel()]), '#suffix' => '', '#weight' => 999, ];