Overrides TranslatorPluginUiBase::buildConfigurationForm
public function buildConfigurationForm(array $form, FormStateInterface $form_state) {
$form = parent::buildConfigurationForm($form, $form_state);
/** @var \Drupal\tmgmt\TranslatorInterface $translator */
$translator = $form_state
->getFormObject()
->getEntity();
$form['export_format'] = array(
'#type' => 'radios',
'#title' => t('Export to'),
'#options' => \Drupal::service('plugin.manager.tmgmt_file.format')
->getLabels(),
'#default_value' => $translator
->getSetting('export_format'),
'#description' => t('Please select the format you want to export data.'),
);
$xliff_states = [
'#states' => [
'visible' => [
':input[name="settings[export_format]"]' => [
'value' => 'xlf',
],
],
],
];
$form['format_configuration']['target'] = [
'#type' => 'select',
'#title' => t('Target content'),
'#options' => [
'source' => t('Same as source'),
],
'#empty_option' => t('Empty'),
'#default_value' => $translator
->getSetting('format_configuration.target'),
'#description' => t('Defines what the <target> in the XLIFF file should contain, either empty or the same as the source text.'),
] + $xliff_states;
$form['xliff_cdata'] = [
'#type' => 'checkbox',
'#title' => t('XLIFF CDATA'),
'#description' => t('Check to use CDATA for import/export.'),
'#default_value' => $translator
->getSetting('xliff_cdata'),
] + $xliff_states;
$form['xliff_processing'] = [
'#type' => 'checkbox',
'#title' => t('Extended XLIFF processing'),
'#description' => t('Check to further process content semantics and mask HTML tags instead just escaping it.'),
'#default_value' => $translator
->getSetting('xliff_processing'),
] + $xliff_states;
$form['xliff_message'] = [
'#type' => 'container',
'#markup' => t('By selecting CDATA option, XLIFF processing will be ignored.'),
'#attributes' => [
'class' => [
'messages messages--warning',
],
],
] + $xliff_states;
$form['allow_override'] = array(
'#type' => 'checkbox',
'#title' => t('Allow to override the format per job'),
'#default_value' => $translator
->getSetting('allow_override'),
);
// Any visible, writeable wrapper can potentially be used for the files
// directory, including a remote file system that integrates with a CDN.
foreach (\Drupal::service('stream_wrapper_manager')
->getDescriptions(StreamWrapperInterface::WRITE_VISIBLE) as $scheme => $description) {
$options[$scheme] = Html::escape($description);
}
if (!empty($options)) {
$form['scheme'] = array(
'#type' => 'radios',
'#title' => t('Download method'),
'#default_value' => $translator
->getSetting('scheme'),
'#options' => $options,
'#description' => t('Choose the location where exported files should be stored. The usage of a protected location (e.g. private://) is recommended to prevent unauthorized access.'),
);
}
return $form;
}