function ImportForm::buildForm
Same name in other branches
- 9 core/modules/locale/src/Form/ImportForm.php \Drupal\locale\Form\ImportForm::buildForm()
- 8.9.x core/modules/locale/src/Form/ImportForm.php \Drupal\locale\Form\ImportForm::buildForm()
- 11.x core/modules/locale/src/Form/ImportForm.php \Drupal\locale\Form\ImportForm::buildForm()
Form constructor for the translation import screen.
Overrides FormInterface::buildForm
File
-
core/
modules/ locale/ src/ Form/ ImportForm.php, line 74
Class
- ImportForm
- Form constructor for the translation import screen.
Namespace
Drupal\locale\FormCode
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 = [];
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 = [
(string) $this->t('Existing languages') => $existing_languages,
(string) $this->t('Languages not yet added') => $this->languageManager
->getStandardLanguageListWithoutConfigured(),
];
}
$validators = [
'FileExtension' => [
'extensions' => 'po',
],
'FileSizeLimit' => [
'fileLimit' => Environment::getUploadMaxSize(),
],
];
$form['file'] = [
'#type' => 'file',
'#title' => $this->t('Translation file'),
'#description' => [
'#theme' => 'file_upload_help',
'#description' => $this->t('A Gettext Portable Object file.'),
'#upload_validators' => $validators,
],
'#size' => 50,
'#upload_validators' => $validators,
'#upload_location' => 'translations://',
'#attributes' => [
'class' => [
'file-import-input',
],
],
];
$form['langcode'] = [
'#type' => 'select',
'#title' => $this->t('Language'),
'#options' => $language_options,
'#default_value' => $default,
'#attributes' => [
'class' => [
'langcode-input',
],
],
];
$form['customized'] = [
'#title' => $this->t('Treat imported strings as custom translations'),
'#type' => 'checkbox',
];
$form['overwrite_options'] = [
'#type' => 'container',
'#tree' => TRUE,
];
$form['overwrite_options']['not_customized'] = [
'#title' => $this->t('Overwrite non-customized translations'),
'#type' => 'checkbox',
'#states' => [
'checked' => [
':input[name="customized"]' => [
'checked' => TRUE,
],
],
],
];
$form['overwrite_options']['customized'] = [
'#title' => $this->t('Overwrite existing customized translations'),
'#type' => 'checkbox',
];
$form['actions'] = [
'#type' => 'actions',
];
$form['actions']['submit'] = [
'#type' => 'submit',
'#value' => $this->t('Import'),
];
return $form;
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.