function install_import_translations

Same name in other branches
  1. 8.9.x core/includes/install.core.inc \install_import_translations()
  2. 10 core/includes/install.core.inc \install_import_translations()
  3. 11.x core/includes/install.core.inc \install_import_translations()

Imports languages via a batch process during installation.

Parameters

$install_state: An array of information about the current installation state.

Return value

array|null The batch definition, if there are language files to import.

File

core/includes/install.core.inc, line 1726

Code

function install_import_translations(&$install_state) {
    $module_handler = \Drupal::moduleHandler();
    $module_handler->loadInclude('locale', 'inc', 'locale.translation');
    // If there is more than one language or the single one is not English, we
    // should import translations.
    $operations = install_download_additional_translations_operations($install_state);
    $languages = \Drupal::languageManager()->getLanguages();
    if (count($languages) > 1 || !isset($languages['en'])) {
        $operations[] = [
            '_install_prepare_import',
            [
                array_keys($languages),
                $install_state['server_pattern'],
            ],
        ];
        // Set up a batch to import translations for drupal core. Translation import
        // for contrib modules happens in install_import_translations_remaining.
        foreach ($languages as $language) {
            if (locale_translation_use_remote_source()) {
                $operations[] = [
                    'locale_translation_batch_fetch_download',
                    [
                        'drupal',
                        $language->getId(),
                    ],
                ];
            }
            $operations[] = [
                'locale_translation_batch_fetch_import',
                [
                    'drupal',
                    $language->getId(),
                    [],
                ],
            ];
        }
        $module_handler->loadInclude('locale', 'inc', 'locale.fetch');
        $batch = [
            'operations' => $operations,
            'title' => t('Updating translations.'),
            'progress_message' => '',
            'error_message' => t('Error importing translation files'),
            'finished' => 'locale_translation_batch_fetch_finished',
            'file' => \Drupal::service('extension.list.module')->getPath('locale') . '/locale.batch.inc',
        ];
        return $batch;
    }
}

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