function locale_config_batch_build

Same name in other branches
  1. 9 core/modules/locale/locale.bulk.inc \locale_config_batch_build()
  2. 10 core/modules/locale/locale.bulk.inc \locale_config_batch_build()
  3. 11.x core/modules/locale/locale.bulk.inc \locale_config_batch_build()

Creates a locale batch to refresh specific configuration.

Parameters

array $names: List of configuration object names (which are strings) to update.

array $langcodes: List of language codes to refresh.

array $options: (optional) An array with options that can have the following elements:

  • 'finish_feedback': Whether or not to give feedback to the user when the batch is finished. Defaults to TRUE.

Return value

array The batch definition.

See also

locale_config_batch_refresh_name()

1 call to locale_config_batch_build()
locale_config_batch_update_components in core/modules/locale/locale.bulk.inc
Builds a locale batch to refresh configuration.

File

core/modules/locale/locale.bulk.inc, line 570

Code

function locale_config_batch_build(array $names, array $langcodes, array $options = []) {
    $options += [
        'finish_feedback' => TRUE,
    ];
    $i = 0;
    $batch_names = [];
    $operations = [];
    foreach ($names as $name) {
        $batch_names[] = $name;
        $i++;
        // During installation the caching of configuration objects is disabled so
        // it is very expensive to initialize the \Drupal::config() object on each
        // request. We batch a small number of configuration object upgrades
        // together to improve the overall performance of the process.
        if ($i % 20 == 0) {
            $operations[] = [
                'locale_config_batch_refresh_name',
                [
                    $batch_names,
                    $langcodes,
                ],
            ];
            $batch_names = [];
        }
    }
    if (!empty($batch_names)) {
        $operations[] = [
            'locale_config_batch_refresh_name',
            [
                $batch_names,
                $langcodes,
            ],
        ];
    }
    $batch = [
        'operations' => $operations,
        'title' => t('Updating configuration translations'),
        'init_message' => t('Starting configuration update'),
        'error_message' => t('Error updating configuration translations'),
        'file' => drupal_get_path('module', 'locale') . '/locale.bulk.inc',
    ];
    if (!empty($options['finish_feedback'])) {
        $batch['completed'] = 'locale_config_batch_finished';
    }
    return $batch;
}

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