ImportForm::buildForm

public ImportForm::buildForm(array $form, FormStateInterface $form_state)

Form constructor for the translation import screen.

Overrides FormInterface::buildForm

File

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

Class

ImportForm
Form constructor for the translation import screen.

Namespace

Drupal\locale\Form

Code

public function buildForm(array $form, FormStateInterface $form_state) {
  $languages = $this->languageManager->getLanguages();

  // Initialize a language list to the ones available, including English if we
  // are to translate Drupal to English as well.
  $existing_languages = array();
  foreach ($languages as $langcode => $language) {
    if (locale_is_translatable($langcode)) {
      $existing_languages[$langcode] = $language->getName();
    }
  }

  // If we have no languages available, present the list of predefined
  // languages only. If we do have already added languages, set up two option
  // groups with the list of existing and then predefined languages.
  if (empty($existing_languages)) {
    $language_options = $this->languageManager->getStandardLanguageListWithoutConfigured();
    $default = key($language_options);
  }
  else {
    $default = key($existing_languages);
    $language_options = array(
      (string) $this->t('Existing languages') => $existing_languages,
      (string) $this->t('Languages not yet added') => $this->languageManager->getStandardLanguageListWithoutConfigured(),
    );
  }

  $validators = array(
    'file_validate_extensions' => array('po'),
    'file_validate_size' => array(file_upload_max_size()),
  );
  $form['file'] = array(
    '#type' => 'file',
    '#title' => $this->t('Translation file'),
    '#description' => array(
      '#theme' => 'file_upload_help',
      '#description' => $this->t('A Gettext Portable Object file.'),
      '#upload_validators' => $validators,
    ),
    '#size' => 50,
    '#upload_validators' => $validators,
    '#attributes' => array('class' => array('file-import-input')),
  );
  $form['langcode'] = array(
    '#type' => 'select',
    '#title' => $this->t('Language'),
    '#options' => $language_options,
    '#default_value' => $default,
    '#attributes' => array('class' => array('langcode-input')),
  );

  $form['customized'] = array(
    '#title' => $this->t('Treat imported strings as custom translations'),
    '#type' => 'checkbox',
  );
  $form['overwrite_options'] = array(
    '#type' => 'container',
    '#tree' => TRUE,
  );
  $form['overwrite_options']['not_customized'] = array(
    '#title' => $this->t('Overwrite non-customized translations'),
    '#type' => 'checkbox',
    '#states' => array(
      'checked' => array(
        ':input[name="customized"]' => array('checked' => TRUE),
      ),
    ),
  );
  $form['overwrite_options']['customized'] = array(
    '#title' => $this->t('Overwrite existing customized translations'),
    '#type' => 'checkbox',
  );

  $form['actions'] = array(
    '#type' => 'actions',
  );
  $form['actions']['submit'] = array(
    '#type' => 'submit',
    '#value' => $this->t('Import'),
  );
  return $form;
}
doc_Drupal
2016-10-29 09:20:29
Comments
Leave a Comment

Please login to continue.