drupal_language_initialize

7 bootstrap.inc drupal_language_initialize()
8 bootstrap.inc drupal_language_initialize()

Initializes all the defined language types.

See also

Drupal\Core\Language\Language

8 calls to drupal_language_initialize()

File

core/includes/bootstrap.inc, line 2504
Functions that need to be loaded on every Drupal request.

Code

function drupal_language_initialize() {
  $types = language_types_get_all();
  $container = drupal_container();

  // Ensure a language object is registered for each language type, whether the
  // site is multilingual or not.
  if (language_multilingual()) {
    include_once DRUPAL_ROOT . '/core/includes/language.inc';
    foreach ($types as $type) {
      $language = language_types_initialize($type);
      $container->set($type, NULL);
      $container->register($type, 'Drupal\\Core\\Language\\Language')
        ->addMethodCall('extend', array($language));
    }
    // Allow modules to react on language system initialization in multilingual
    // environments.
    bootstrap_invoke_all('language_init');
  }
  else {
    $default = language_default();
    foreach ($types as $type) {
      $container->set($type, NULL);
      $container->register($type, 'Drupal\\Core\\Language\\Language')
        ->addMethodCall('extend', array($default));
    }
  }

  // @todo Temporary backwards compatibility for code still using globals.
//   Remove after these issues:
//   - $language_interface: http://drupal.org/node/1510686
//   - $language_url: http://drupal.org/node/1512310
//   - $language_content: http://drupal.org/node/1512308
  foreach ($types as $type) {
    $GLOBALS[$type] = $container->get($type);
  }
}
Login or register to post comments