You are here

function install_import_translations in Drupal 9

Same name and namespace in other branches
  1. 8 core/includes/install.core.inc \install_import_translations()
  2. 10 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

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

File

core/includes/install.core.inc, line 1724
API functions for installing Drupal.

Code

function install_import_translations(&$install_state) {
  \Drupal::moduleHandler()
    ->loadInclude('locale', 'translation.inc');

  // 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_load_include('fetch.inc', 'locale');
    $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;
  }
}