function DevelGenerateBase::getLanguageForm

Same name in other branches
  1. 4.x devel_generate/src/DevelGenerateBase.php \Drupal\devel_generate\DevelGenerateBase::getLanguageForm()

Creates the language and translation section of the form.

This is used by both Content and Term generation.

Parameters

string $items: The name of the things that are being generated - 'nodes' or 'terms'.

Return value

array The language details section of the form.

3 calls to DevelGenerateBase::getLanguageForm()
BlockContentDevelGenerate::settingsForm in devel_generate/src/Plugin/DevelGenerate/BlockContentDevelGenerate.php
Returns the form for the plugin.
ContentDevelGenerate::settingsForm in devel_generate/src/Plugin/DevelGenerate/ContentDevelGenerate.php
Returns the form for the plugin.
TermDevelGenerate::settingsForm in devel_generate/src/Plugin/DevelGenerate/TermDevelGenerate.php
Returns the form for the plugin.

File

devel_generate/src/DevelGenerateBase.php, line 266

Class

DevelGenerateBase
Provides a base DevelGenerate plugin implementation.

Namespace

Drupal\devel_generate

Code

protected function getLanguageForm(string $items) : array {
    // We always need a language, even if the language module is not installed.
    $options = [];
    $languages = $this->languageManager
        ->getLanguages(LanguageInterface::STATE_CONFIGURABLE);
    foreach ($languages as $langcode => $language) {
        $options[$langcode] = $language->getName();
    }
    $language_module_exists = $this->moduleHandler
        ->moduleExists('language');
    $translation_module_exists = $this->moduleHandler
        ->moduleExists('content_translation');
    $form['language'] = [
        '#type' => 'details',
        '#title' => $this->t('Language'),
        '#open' => $language_module_exists,
    ];
    $form['language']['add_language'] = [
        '#type' => 'select',
        '#title' => $this->t('Select the primary language(s) for @items', [
            '@items' => $items,
        ]),
        '#multiple' => TRUE,
        '#description' => $language_module_exists ? '' : $this->t('Disabled - requires Language module'),
        '#options' => $options,
        '#default_value' => [
            $this->languageManager
                ->getDefaultLanguage()
                ->getId(),
        ],
        '#disabled' => !$language_module_exists,
    ];
    $form['language']['translate_language'] = [
        '#type' => 'select',
        '#title' => $this->t('Select the language(s) for translated @items', [
            '@items' => $items,
        ]),
        '#multiple' => TRUE,
        '#description' => $translation_module_exists ? $this->t('Translated @items will be created for each language selected.', [
            '@items' => $items,
        ]) : $this->t('Disabled - requires Content Translation module.'),
        '#options' => $options,
        '#disabled' => !$translation_module_exists,
    ];
    return $form;
}