function locale_translate_batch_build

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

Build a locale batch from an array of files.

Parameters

array $files: Array of file objects to import.

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

  • 'langcode': The language code. Optional, defaults to NULL, which means that the language will be detected from the name of the files.
  • 'overwrite_options': Overwrite options array as defined in Drupal\locale\PoDatabaseWriter. Optional, defaults to an empty array.
  • 'customized': Flag indicating whether the strings imported from $file are customized translations or come from a community source. Use LOCALE_CUSTOMIZED or LOCALE_NOT_CUSTOMIZED. Optional, defaults to LOCALE_NOT_CUSTOMIZED.
  • 'finish_feedback': Whether or not to give feedback to the user when the batch is finished. Optional, defaults to TRUE.

Return value

array|bool A batch structure or FALSE if $files was empty.

2 calls to locale_translate_batch_build()
ImportForm::submitForm in core/modules/locale/src/Form/ImportForm.php
Form submission handler.
locale_translate_batch_import_files in core/modules/locale/locale.bulk.inc
Prepare a batch to import all translations.

File

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

Code

function locale_translate_batch_build(array $files, array $options) {
    $options += [
        'overwrite_options' => [],
        'customized' => LOCALE_NOT_CUSTOMIZED,
        'finish_feedback' => TRUE,
    ];
    if (count($files)) {
        $operations = [];
        foreach ($files as $file) {
            // We call locale_translate_batch_import for every batch operation.
            $operations[] = [
                'locale_translate_batch_import',
                [
                    $file,
                    $options,
                ],
            ];
        }
        // Save the translation status of all files.
        $operations[] = [
            'locale_translate_batch_import_save',
            [],
        ];
        // Add a final step to refresh JavaScript and configuration strings.
        $operations[] = [
            'locale_translate_batch_refresh',
            [],
        ];
        $batch = [
            'operations' => $operations,
            'title' => t('Importing interface translations'),
            'progress_message' => '',
            'error_message' => t('Error importing interface translations'),
            'file' => drupal_get_path('module', 'locale') . '/locale.bulk.inc',
        ];
        if ($options['finish_feedback']) {
            $batch['finished'] = 'locale_translate_batch_finished';
        }
        return $batch;
    }
    return FALSE;
}

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