function locale_system_update

Imports translations when new modules or themes are installed.

This function will start a batch to import translations for the added components.

Parameters

array $components: An array of arrays of component (theme and/or module) names to import translations for, indexed by type.

2 calls to locale_system_update()
locale_modules_installed in drupal/core/modules/locale/locale.module
Implements hook_modules_installed().
locale_themes_enabled in drupal/core/modules/locale/locale.module
Implements hook_themes_enabled().

File

drupal/core/modules/locale/locale.module, line 443
Enables the translation of the user interface to languages other than English.

Code

function locale_system_update(array $components) {
  $components += array(
    'module' => array(),
    'theme' => array(),
  );
  $list = array_merge($components['module'], $components['theme']);

  // Skip running the translation imports if in the installer,
  // because it would break out of the installer flow. We have
  // built-in support for translation imports in the installer.
  if (!drupal_installation_attempted() && locale_translatable_language_list()) {
    module_load_include('compare.inc', 'locale');

    // Update the list of translatable projects and start the import batch.
    // Only when new projects are added the update batch will be triggered. Not
    // each enabled module will introduce a new project. E.g. sub modules.
    $projects = array_keys(locale_translation_build_projects());
    if ($list = array_intersect($list, $projects)) {
      module_load_include('fetch.inc', 'locale');

      // Get translation status of the projects, download and update translations.
      $options = _locale_translation_default_update_options();
      $batch = locale_translation_batch_update_build($list, array(), $options);
      batch_set($batch);
    }
    Drupal::moduleHandler()
      ->loadInclude('locale', 'bulk.inc');
    if ($batch = locale_config_batch_update_components(array(), array(), $components)) {
      batch_set($batch);
    }
  }
}