function ImportForm::submitForm

Same name and namespace in other branches
  1. 9 core/modules/locale/src/Form/ImportForm.php \Drupal\locale\Form\ImportForm::submitForm()
  2. 8.9.x core/modules/locale/src/Form/ImportForm.php \Drupal\locale\Form\ImportForm::submitForm()
  3. 10 core/modules/locale/src/Form/ImportForm.php \Drupal\locale\Form\ImportForm::submitForm()

Overrides FormInterface::submitForm

File

core/modules/locale/src/Form/ImportForm.php, line 173

Class

ImportForm
Form constructor for the translation import screen.

Namespace

Drupal\locale\Form

Code

public function submitForm(array &$form, FormStateInterface $form_state) {
    $this->moduleHandler
        ->loadInclude('locale', 'translation.inc');
    // Add language, if not yet supported.
    $language = $this->languageManager
        ->getLanguage($form_state->getValue('langcode'));
    if (empty($language)) {
        $language = ConfigurableLanguage::createFromLangcode($form_state->getValue('langcode'));
        $language->save();
        $this->messenger()
            ->addStatus($this->t('The language %language has been created.', [
            '%language' => $this->t($language->label()),
        ]));
    }
    $options = array_merge(_locale_translation_default_update_options(), [
        'langcode' => $form_state->getValue('langcode'),
        'overwrite_options' => $form_state->getValue('overwrite_options'),
        'customized' => $form_state->getValue('customized') ? LOCALE_CUSTOMIZED : LOCALE_NOT_CUSTOMIZED,
    ]);
    $this->moduleHandler
        ->loadInclude('locale', 'bulk.inc');
    $file = locale_translate_file_attach_properties($this->file, $options);
    $batch = locale_translate_batch_build([
        $file->uri => $file,
    ], $options);
    batch_set($batch);
    // Create or update all configuration translations for this language.
    if ($batch = locale_config_batch_update_components($options, [
        $form_state->getValue('langcode'),
    ])) {
        batch_set($batch);
    }
    $form_state->setRedirect('locale.translate_page');
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.