You are here

public function ContentTranslationHandler::entityFormSourceChange in Drupal 9

Same name and namespace in other branches
  1. 8 core/modules/content_translation/src/ContentTranslationHandler.php \Drupal\content_translation\ContentTranslationHandler::entityFormSourceChange()
  2. 10 core/modules/content_translation/src/ContentTranslationHandler.php \Drupal\content_translation\ContentTranslationHandler::entityFormSourceChange()

Form submission handler for ContentTranslationHandler::entityFormAlter().

Takes care of the source language change.

File

core/modules/content_translation/src/ContentTranslationHandler.php, line 743

Class

ContentTranslationHandler
Base class for content translation handlers.

Namespace

Drupal\content_translation

Code

public function entityFormSourceChange($form, FormStateInterface $form_state) {
  $form_object = $form_state
    ->getFormObject();
  $entity = $form_object
    ->getEntity();
  $source = $form_state
    ->getValue([
    'source_langcode',
    'source',
  ]);
  $entity_type_id = $entity
    ->getEntityTypeId();
  $form_state
    ->setRedirect("entity.{$entity_type_id}.content_translation_add", [
    $entity_type_id => $entity
      ->id(),
    'source' => $source,
    'target' => $form_object
      ->getFormLangcode($form_state),
  ]);
  $languages = $this->languageManager
    ->getLanguages();
  $this->messenger
    ->addStatus(t('Source language set to: %language', [
    '%language' => $languages[$source]
      ->getName(),
  ]));
}